栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

如何使用 Python 连接 PostgreSQL 运行参数化Insert语句

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用 Python 连接 PostgreSQL 运行参数化Insert语句

从 Python 连接 PostgreSQL 的最著名的库可能是psycopg2。psycopg2 是一个简单易用的库,适合想要简单操作 SQL 的人。用法基本上很简单,但是当我尝试通过 psycogpg2 将记录写入 PostgreSQL 时,我被卡住了。在这里,我写了一个这样的查询。

import psycopg2

conn = psycopg2.connect(host=pg_credential.hostname,
                        port=pg_credential.port,
                        user=pg_credential.username,
                        password=pg_credential.password,
                        database=pg_credential.path[1:]) # To remove slash

cursor = conn.cursor()
cursor.execute("INSERT INTO a_table (c1, c2, c3) VALUES(%s, %s, %s)", (v1, v2, v3))
cursor.close()
conn.close()

但我看不到任何数据a_table。查询本身似乎很好,因为我们可以插入查询。为什么数据没有正确插入?我花了一些时间寻找答案,终于找到了解决方案。

我们需要调用commit游标对象。简而言之,我们需要编写如下代码。

import psycopg2

conn = psycopg2.connect(host=pg_credential.hostname,
                        port=pg_credential.port,
                        user=pg_credential.username,
                        password=pg_credential.password,
                        database=pg_credential.path[1:]) # To remove slash

cursor = conn.cursor()
cursor.execute("INSERT INTO a_table (c1, c2, c3) VALUES(%s, %s, %s)", (v1, v2, v3))
conn.commit() # <- We MUST commit to reflect the inserted data
cursor.close()
conn.close()

由于我通常使用commit唯一的事务操作,所以我认为当我不使用事务时,没有必要调用它来简单地插入数据。所以那是我的错。我们应该仔细检查文档,尤其是当我们为我们使用新库时。psycopg2 文档在这里。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/822981.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号