SQLAlchemy Core: eliminar varias tablas

En este capítulo, veremos la expresión Eliminación de múltiples tablas, que es similar al uso de la función Actualizaciones de múltiples tablas.

En la cláusula WHERE de una declaración DELETE, puede especificar varias tablas en muchos dialectos del DBMS. Para PG y MySQL, la sintaxis es DELETE USING; y para SQL Server, «DELETE FROM» se refiere a varias tablas. SQLAlchemy Borrar () la construcción admite ambos modos implícitamente al especificar varias tablas en la cláusula WHERE de la siguiente manera:

stmt = users.delete().
   where(users.c.id == addresses.c.id).
   where(addresses.c.email_address.startswith('xyz%'))
conn.execute(stmt)

En el backend de PostgreSQL, el SQL resultante de la declaración anterior se mostrará como:

DELETE FROM users USING addresses
WHERE users.id = addresses.id
AND (addresses.email_address LIKE %(email_address_1)s || '%%')

Si este método se usa con una base de datos que no admite este comportamiento, el compilador generará NotImplementedError.

🚫