PostgreSQL wiht pg8000将结果从一个SQL插入到另一个选项卡

2024-05-16 06:54:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用pg8000驱动程序将一个PostgreSQL表中的行复制到另一个表中。代码如下:

import pg8000
conn = pg8000.connect(user="postgres", password="XXXXX",database="test")
cursor = conn.cursor()
cursor.execute("SELECT * FROM exampletable")
results = cursor.fetchall()

我现在想要的是将结果完全插入到一个新表中。应该是这样的:

^{pr2}$

但不是这样运作的,我不知道如何修复它。可能不是所有的字符串类型都是固定的?在


Tags: 代码testimportexecutepostgresqlconnect驱动程序postgres
2条回答

格式%s用于标量值。将结果转换为字符串,如下所示:

cursor.execute("INSERT INTO secondtable VALUES %s" % str(results))

有点离题,但搜索相关问题的线索在这里。我想知道如何执行字符串的格式。koriander回答中给出的格式不适用于pg8000 1.10.5。以下是对我有用的:

    some_field_value = 'value'
    sql = 'SELECT a_field FROM your_table WHERE some_field = %s'
    cursor.execute(sql, [some_field_value])

文档中的详细信息:pg8000 Cursor.execute

重要的一点是:

args – If paramstyle is qmark, numeric, or format, this argument should be an array of parameters to bind into the statement

要记住两件事:

  1. pg8000从不接受格式字符串(%s)的引号
  2. pg8000.paramstyle的值很重要。默认值为“格式”

相关问题 更多 >