SQLAlchemy 中的 PostgreSQL NOT 运算符
PostgreSQL NOT operator in SQLAlchemy
我想通过一个查询实现切换布尔标志。
我的查询如下所示:
session.query(Foo).update({"status": SOME_NOT_OPERATOR})
SQLAlchemy 是否支持 PostgreSQL NOT (https://www.postgresql.org/docs/current/functions-logical.html) 运算符。这如何以不同的方式实现?
As Adrian Klaver points out in their , SQLAlchemy's not_ 运算符将切换值。所有这些陈述都是等价的:
# 1.x style
session.query(Foo).update({'status': ~Foo.status})
session.query(Foo).update({'status': not_(Foo.status)})
# 2.0 style
session.execute(update(Foo).values(status=~Foo.status))
session.execute(update(Foo).values(status=not_(Foo.status)))
将生成此 SQL:
UPDATE foo SET status=NOT foo.status
我想通过一个查询实现切换布尔标志。
我的查询如下所示:
session.query(Foo).update({"status": SOME_NOT_OPERATOR})
SQLAlchemy 是否支持 PostgreSQL NOT (https://www.postgresql.org/docs/current/functions-logical.html) 运算符。这如何以不同的方式实现?
As Adrian Klaver points out in their
# 1.x style
session.query(Foo).update({'status': ~Foo.status})
session.query(Foo).update({'status': not_(Foo.status)})
# 2.0 style
session.execute(update(Foo).values(status=~Foo.status))
session.execute(update(Foo).values(status=not_(Foo.status)))
将生成此 SQL:
UPDATE foo SET status=NOT foo.status