Di Postgres Anda dapat menggunakan CTE yang dapat ditulis untuk memperbarui kedua tabel dalam satu pernyataan.
Dengan asumsi pengaturan tabel ini:
create table a (rid integer primary key, ride text, qunta integer);
create table b (kid integer primary key, rid integer references a, date date);
CTE akan menjadi:
with new_a as (
update a
set rid = 110
where rid = 1
)
update b
set rid = 110
where rid = 1;
Karena kunci asing (tidak dapat ditangguhkan) dievaluasi pada tingkat pernyataan dan kunci utama dan kunci asing diubah dalam pernyataan yang sama , ini bekerja.
SQLFiddle:http://sqlfiddle.com/#!15/db6d1/1