【发布时间】:2014-07-24 07:28:25
【问题描述】:
此 SQL Alchemy 0.9.7 代码可以正常执行,但不会按预期更新底层数据库。
这里是蟒蛇:
print t #prints TITLE ABSTRACTOR 1
print newtitle #prints TITLE ABSTRACTOR I
print session.query(Basic).filter(Basic.title==t).count() #prints 1
ret = update(Basic).where(Basic.title==t).values(title=newtitle)
session.commit()
这是更新后数据库的样子:
select count(*) from basics where title='TITLE ABSTRACTOR 1';
count
-------
1
(1 row)
select count(*) from basics where title='TITLE ABSTRACTOR I';
count
-------
0
(1 row)
我遇到了 SQL 炼金术错误还是我遗漏了什么?
【问题讨论】:
-
另外,“.9”是指 0.9.0 吗?如果是这样,显而易见的做法是使用最新版本 (0.9.7) 进行测试。如果这可行,那么是的,你遇到了一个错误,并且该错误已被修复,你就完成了。如果没有,那么您仍然需要搜索错误报告或调试代码或希望其他人可以这样做,但至少人们不必拥有与您完全相同的旧版本。
-
@abarnert 我在 pip 上更新到最新版本,0.9.7。同样的问题。
-
好的,这有帮助。但是我们仍然没有任何人都可以运行或阅读的示例(数据库转储、sqlalchemy 设置等),因此除非错误非常明显,否则没有人能为您做很多事情。我在上面提供的 MCVE 帮助链接确实可以帮助您获得更好的答案。
-
等一下,说到非常明显的错误......我有一段时间没有使用 sqlalchemy,但
update不只是构造一个Update对象,然后你必须调用@ 987654326@ 开启,还是传递给连接的execute方法?
标签: python sqlalchemy