SQLAlchemy教程

SQLAlchemy 多表删除

在本章中,我们将研究多表删除表达式,它类似于使用多表更新功能。
在许多DBMS方言中,DELETE语句的WHERE子句中可以引用多个表。对于 PG 和 MySQL,使用"DELETE USING"语法;对于 SQL Server,使用"DELETE FROM"表达式是指多个表。 SQLAlchemy delete() 构造隐式支持这两种模式,通过在 WHERE 子句中指定多个表如下-
stmt = users.delete().\
   where(users.c.id == addresses.c.id).\
   where(addresses.c.email_address.startswith('xyz%'))
conn.execute(stmt)
在 PostgreSQL 后端,上述语句的结果 SQL 将呈现为-
DELETE FROM users USING addresses
WHERE users.id = addresses.id
AND (addresses.email_address LIKE %(email_address_1)s || '%%')
如果将此方法用于不支持此行为的数据库,编译器将引发 NotImplementedError。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4