PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Cara memperbarui baris dua tabel yang memiliki batasan kunci asing

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Rails ActiveRecord - cara mengambil catatan antara dua tanggal

  2. Masalah konkurensi dengan psycopg2, Redshift, dan unittest

  3. tidak dapat menulis ke file log pg_upgrade_internal.log saat memutakhirkan dari Postgresql 9.1 ke 9.3

  4. Kesalahan PG tidak dapat terhubung ke server:Koneksi ditolak Apakah server berjalan pada port 5432?

  5. org.postgresql.util.PSQLException:ERROR:kolom user0_.id tidak ada - Hibernate