我有以下构造,它似乎产生了所需的 SQL:
>>> print session.query(exists('1').where(MyTable.name=='x'))
SELECT EXISTS (SELECT 1
FROM my_table
WHERE my_table.name = :name_1) AS anon_1
但是,当我尝试使用它执行它时,.scalar()
它.all()
会返回错误:
*** UnboundExecutionError: Could not locate a bind configured on SQL expression or this Session
如何为这个简单的查询绑定它?我不想这样做bool(MyTable.query.filter(MyTable.name=='x').first())
,因为这会浪费地从表中拉回整行。
更新:
我也试过:
>>> session.connection(mapper=MyTable).execute(
exists('1').where(MyTable.name=='x'))
StatementError: Not an executable clause 'EXISTS \
(SELECT 1 \nFROM my_table \nWHERE my_table.name = %(name_1)s)' []