Menggunakan Beberapa Pembaruan Tabel

Pada bab sebelumnya, kita telah membahas tentang bagaimana menggunakan banyak tabel. Jadi kami melangkah lebih jauh dan belajarmultiple table updates di bab ini.

Dengan menggunakan objek tabel SQLAlchemy, lebih dari satu tabel dapat ditentukan dalam metode klausa WHERE dari update (). PostgreSQL dan Microsoft SQL Server mendukung pernyataan UPDATE yang merujuk ke beberapa tabel. Ini mengimplementasikan“UPDATE FROM”sintaks, yang memperbarui tabel satu per satu. Namun, tabel tambahan dapat direferensikan di klausa "FROM" tambahan di klausa WHERE secara langsung. Baris kode berikut menjelaskan konsepmultiple table updates jelas.

stmt = students.update().\
values({
   students.c.name:'xyz',
   addresses.c.email_add:'[email protected]'
}).\
where(students.c.id == addresses.c.id)

Objek pembaruan setara dengan kueri UPDATE berikut -

UPDATE students 
SET email_add = :addresses_email_add, name = :name 
FROM addresses 
WHERE students.id = addresses.id

Sejauh menyangkut dialek MySQL, beberapa tabel dapat disematkan ke dalam satu pernyataan UPDATE yang dipisahkan oleh koma seperti yang diberikan di bawah ini -

stmt = students.update().\
   values(name = 'xyz').\
   where(students.c.id == addresses.c.id)

Kode berikut menggambarkan kueri UPDATE yang dihasilkan -

'UPDATE students SET name = :name 
FROM addresses 
WHERE students.id = addresses.id'

Namun dialek SQLite tidak mendukung kriteria beberapa tabel dalam UPDATE dan menunjukkan kesalahan berikut -

NotImplementedError: This backend does not support multiple-table criteria within UPDATE