使用psycopg2,我可以从一个PostgreSQL数据库连接中的表中选择数据,并将其插入第二个PostgreSQL数据库连接中的表中。在
不过,我只想把每一个列都写出来,我只想把它们分开。在
是否有人知道这两种方法中的一种:在数据库之间移动整个表,或
在不必为每个要移动的列声明变量的情况下迭代特性
或者。。。?在
下面是我当前使用的脚本,您可以在其中看到对特定功能的选择和变量的创建(它可以工作,但这不是一个实用的方法):import psycopg2
connDev = psycopg2.connect("host=host1 dbname=dbname1 user=postgres password=*** ")
connQa = psycopg2.connect("host=host2 dbname=dbname2 user=postgres password=*** ")
curDev = connDev.cursor()
curQa = connQa.cursor()
sql = ('INSERT INTO "tempHoods" (nbhd_name, geom) values (%s, %s);')
curDev.execute('select cast(geom as varchar) from "CCD_Neighborhoods" where nbhd_id = 11;')
tempGeom = curDev.fetchone()
curDev.execute('select nbhd_name from "CCD_Neighborhoods" where nbhd_id = 11;')
tempName = curDev.fetchone()
data = (tempName, tempGeom)
curQa.execute (sql, data)
#commit transactions
connDev.commit()
connQa.commit()
#close connections
curDev.close()
curQa.close()
connDev.close()
connQa.close()
另一个注意事项是python允许显式地处理SQL函数/数据类型转换,这对于我们处理几何数据类型非常重要。上面你可以看到我将它转换为文本,然后将其转储到源表中现有的几何列中-这将与MSSQL Server一起工作,这是地理空间社区中的一个巨大功能。。。在