gpt4 book ai didi

python - 从插入中选择不使用sqlalchemy

转载 作者:太空宇宙 更新时间:2023-11-04 01:08:42 25 4
gpt4 key购买 nike

我想在 mytable(在 DB2 数据库中)中插入一条记录,并获取在该插入中生成的 id。我正在尝试使用 python 2.7 来做到这一点。这是我所做的:

import sqlalchemy
from sqlalchemy import *
import ibm_db_sa

db2 = sqlalchemy.create_engine('ibm_db_sa://user:pswd@localhost:50001/mydatabase')
sql = "select REPORT_ID from FINAL TABLE(insert into MY_TABLE values(DEFAULT,CURRENT TIMESTAMP,EMPTY_BLOB(),10,'success'));"
result = db2.execute(sql)
for item in result:
id = item[0]
print id

当我执行上面的代码时,它会给我这个输出:

10 //or a increasing number

现在,当我检查数据库时,什么都没有插入!我尝试在命令行上运行相同的 SQL 请求,它工作得很好。知道为什么我不能使用 sqlalchemy 将它插入 python 吗?

最佳答案

您尝试提交了吗? @Lennart 是对的。它可能会解决您的问题。

您的代码不会提交您所做的更改,因此会回滚。如果您的数据库是 InnoDB,它是事务性的,因此需要提交。

根据 this ,您还必须连接到您的引擎。所以在你的例子中它看起来像:

db2 = sqlalchemy.create_engine('ibm_db_sa://user:pswd@localhost:50001/mydatabase')
conn = db2.connect()
trans = conn.begin()
try:
sql = "select REPORT_ID from FINAL TABLE(insert into MY_TABLE values(DEFAULT,CURRENT TIMESTAMP,EMPTY_BLOB(),10,'success'));"
result = conn.execute(sql)
for item in result:
id = item[0]
print id
trans.commit()
except:
trans.rollback()
raise

我希望这对您有所帮助。

关于python - 从插入中选择不使用sqlalchemy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28990066/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com