我正在尝试使用 pgdb 在 python 脚本中的 postgres 表中插入一些值。
起初我试过这个:
cursor.execute('INSERT INTO sites (url) VALUES (%s)', (i,))
这不起作用,所以我将其更改为
print 'INSERT INTO sites (url) VALUES (\'%s\')' %(i)
cursor.execute('INSERT INTO sites (url) VALUES (\'%s\')' %(i))
打印语句的输出是INSERT INTO sites (url) VALUES ('72.240.34.19:80')
如果我将上面的输出粘贴到 psql 中,它可以工作(即插入行)。脚本中不会生成任何错误,但不会插入任何行。用户拥有所有权限并且光标处于活动状态(我可以执行选择等)
由于这是我第一次使用 postgres,我怀疑我可能遗漏了一些明显的东西。我查看了所有可以找到的示例,但无法发现我的代码有什么问题。
编辑:我将此行添加到代码中:
print 'Rowcount %s' %(cursor.rowcount)
这输出Rowcount 1
但SELECT * FROM sites
为空
第二次编辑:这很奇怪。我在表格中手动插入了一行。它是自动生成的序列号,类型为 10。我运行了 3 次脚本,因为之前没有插入任何行。现在,当我手动插入一行时,它的 id 变为 14。看起来行被插入,然后在程序完成执行时被删除。我已经没有关于这个的想法了。