擅长:python、mysql、java
<p>之所以会出现这种情况,是因为您向新表中添加了1个字段,而不是只在设置了该字段的情况下插入数据,并且执行了5次。因此,您实际上应该看到原始表的5个副本,只设置了1个字段。在</p>
<p>您需要首先为<code>scalingData</code>表设置结构,然后插入包含所有字段的所有记录。在</p>
<p>以下是代码(不是Python开发人员):</p>
<pre><code>import psycopg2 as ps
## Populate table scalingData
tmp = scalingData.dtypes
con = None
con = ps.connect(dbname = 'mydb', user='postgres', host='localhost', password='mypd')
con.autocommit = True
cur = con.cursor()
for i in range(0,5):
j = header[i]
stat = """ ALTER TABLE "scalingData" ADD COLUMN "%s" """%j
if tmp[i] == 'int64':
stat = stat+'bigint'
if tmp[i] == 'float64':
stat = stat+'double precision'
if tmp[i] == 'O':
stat = stat+'text'
### Add Column
cur.execute(stat)
fieldsStr = '"' + '", "'.join([header]) + '"' ### will return "header1", "header2", ... , "header5"
stat1 = """INSERT INTO "scalingData" (%s) SELECT %s FROM temporarytable"""%(fieldsStr,fieldsStr)
### Copy Table
cur.execute(stat1)
cur.close()
con.close()
</code></pre>