Python / PostgreSQL - 如何使用psycopg2库将表复制到另一个表?

时间:2016-05-11 15:31:02

标签: python postgresql psycopg2

我正在用Python编写代码,并使用psycopg2库来处理我的PostgreSQL数据库。

我的表格Orders大约有30行。我想将整个表复制到一个名为Orders2的结构相同的空表中。

我该怎么做?

谢谢。

2 个答案:

答案 0 :(得分:2)

虽然您自己的答案是正确的,但有一种更好的方法,不涉及转储到文件,通常更灵活。

INSERT INTO orders2 SELECT * FROM orders

答案 1 :(得分:0)

答案是:

import psycopg2
from psycopg2.extensions import ISOLATION_LEVEL_SERIALIZABLE
import sys
import cStringIO

con = psycopg2.connect(database="xxxx", user="xxxx", password="xxxx", host="localhost")
cur = con.cursor()

input = cStringIO.StringIO()
cur.copy_expert('COPY (select * from Orders) TO STDOUT', input)
input.seek(0)
cur.copy_expert('COPY Orders2 FROM STDOUT', input)
con.commit()