您好,匿名用户
随意问技术百科期待您的加入

sqlachemy中批量删除的问题

0 投票
db.session.query(Article).filter(Article.id.in_(items)).delete()

报错:

sqlalchemy.exc.InvalidRequestError

InvalidRequestError: Could not evaluate current criteria in Python. Specify 'fetch' or False for the synchronize_session parameter.

但是:

db.session.query(Article).filter(Article.id==1).delete()
db.session.query(Article).filter(Article.id.in_(items))

都能得到正确的结果。为什么不能直接使用.delete()?

我按下面的写法能正常工作。

art_items=Article.query.filter(Article.id.in_(items))
for item in art_items:
    db.session.delete(item)
db.session.commit()

就是希望了解一下原理。为什么不能在使用_in的时候直接后面接delete()?

用户头像 提问 2012年 12月1日 @ Lucia 上等兵 (416 威望)
分享到:

你的回答

隐私保护: 您的邮箱仅用于发送系统通知。
请输入验证码:
    图片验证码看不清?
登录注册后不会被要求输入验证码。

提一个问题:

相关问题

+3 投票
1 回复 55 阅读
0 投票
0 回复 36 阅读
0 投票
1 回复 75 阅读
用户头像 提问 2012年 12月1日 @ Nasus 上等兵 (329 威望)
0 投票
1 回复 37 阅读
0 投票
1 回复 33 阅读
用户头像 提问 2012年 12月1日 @ Aquarius 上等兵 (283 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...