我在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 在第二个数据库中复制第一个数据库的相同架构。
我怎样才能做到这一点?
如果您遍历结果并且对于每一行使用 insert 语句将起作用,但可能不是执行此传输的正确方法(更新如@Jules所述):
for row in result.fetchall():
cursor2.execute('INSERT INTO table2 VALUES %s',(row,))