【发布时间】:2012-08-14 09:33:48
【问题描述】:
我需要在选择查询中使用 PostgreSQL only 子句。我可以用 SQLAlchemy 做到这一点吗?
【问题讨论】:
标签: python sql postgresql sqlalchemy
我需要在选择查询中使用 PostgreSQL only 子句。我可以用 SQLAlchemy 做到这一点吗?
【问题讨论】:
标签: python sql postgresql sqlalchemy
是的,只要您使用 SQLAlchemy 0.8.0 或更高版本(请参阅issue 2506)。
ONLY 关键字被实现为选择提示:
result = table.select().with_hint(table, 'ONLY', 'postgresql')
或者在使用 ORM 层时,在查询对象上使用:
session.query(...).with_hint(MappedClass, 'ONLY', 'postgresql')
【讨论】:
session.query(MyTable)时也可以吗?或者这只适用于 SQLAlchemy 的 SQL 部分?如果是这样,是否可以为所有表在某个地方全局设置它?我正在玩temporal_tables 扩展,这将有助于避免UPDATE 语句发生事故。
with_hint() 的任何对象,包括查询。所以session.query(MyTable).with_hint(MyTable, 'ONLY', 'postgresql') 应该可以工作。