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

Dio*_*ães 4 python postgresql psycopg2

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

我的表Orders大约有 30 行。我想将整个表复制到一个具有相同结构的空表,称为Orders2.

我怎样才能做到这一点?

谢谢。

Dio*_*ães 8

答案是:

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()
Run Code Online (Sandbox Code Playgroud)