我在Python中使用psycopg2来管理2个数据库。我想将db1中每个表中的数据复制到db2中。我不想使用pg_dump,因为我希望能够更新第二个数据库中的表,因为对第一个数据库进行了更改,如果表中的数据已经存在,则pg_dump将不会运行。截至目前,我为每个数据库都有2个游标。我正在使用
复制表格 result = cursor1.execute('SELECT * from "table1"')
我正在尝试做类似
的事情 cursor2.execute('INSERT INTO table2 result')
我还使用了pg_dump -s来复制第二个数据库中第一个数据库的相同模式。
我该如何做到这一点?
答案 0 :(得分:1)
如果迭代结果并且对于每一行使用insert语句都可以,但可能不是执行此传输的正确方法(更新如@Jules所说):
for row in result.fetchall():
cursor2.execute('INSERT INTO table2 %s',(row,))