【问题标题】:Expressing Postgresql VALUES command in SQLAlchemy ORM?在 SQLAlchemy ORM 中表达 Postgresql VALUES 命令?
【发布时间】:2021-07-06 16:06:54
【问题描述】:

如何表达查询

VALUES ('alice'), ('bob') EXCEPT ALL SELECT name FROM users;

(即“列出不在表'users'中的VALUES中的所有名称”)在SQLAlchemy ORM中? 换句话说,下面的“X”语句应该是什么样的?

def check_for_existence_of_all_users_in_list(list):
    logger.debug(f"checking that each user in {list} is in the database")
    query = X(list)

(有 sqlalchemy.values 可以这样使用:

  query = sa.values(sa.column('name', sa.String)).data(['alice', 'bob'])  # .???

但它似乎只能用作 INSERT 或 UPDATE 的参数。)

我正在使用 SQLAlchemy 1.4.4。

【问题讨论】:

    标签: postgresql sqlalchemy orm


    【解决方案1】:

    这应该适合你:

    user_names = ['alice', 'bob']
    q = values(column('name', String), name="temp_names").data([(_,) for _ in user_names])
    query = select(q).except_all(select(users.c.name))  # 'users' is Table instance
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-10
      • 2019-05-18
      • 2019-01-22
      • 2020-09-21
      • 1970-01-01
      • 2013-09-22
      相关资源
      最近更新 更多