SQLAlchemy Core - ลบตารางหลายรายการ

ในบทนี้เราจะดูนิพจน์การลบตารางหลายรายการซึ่งคล้ายกับการใช้ฟังก์ชันการอัปเดตตารางหลายรายการ

สามารถอ้างถึงตารางมากกว่าหนึ่งตารางใน WHERE clause ของ DELETE ในภาษาถิ่น DBMS สำหรับ PG และ MySQL จะใช้ไวยากรณ์“ DELETE USING” และสำหรับ SQL Server การใช้นิพจน์ "DELETE FROM" หมายถึงตารางมากกว่าหนึ่งตาราง SQLAlchemydelete() โครงสร้างรองรับทั้งสองโหมดนี้โดยปริยายโดยระบุหลายตารางในส่วนคำสั่ง 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