PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Cách cập nhật các hàng của hai bảng có hạn chế về khóa ngoại

Trong Postgres, bạn có thể sử dụng CTE có thể ghi để cập nhật cả hai bảng trong một câu lệnh duy nhất.

Giả sử thiết lập bảng này:

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 sẽ là:

with new_a as (
  update a 
    set rid = 110
  where rid = 1
)
update b 
  set rid = 110 
where rid = 1;

Vì khóa ngoại (không thể hoãn lại) được đánh giá ở cấp câu lệnh và cả khóa chính và khóa ngoại đều được thay đổi trong cùng một câu lệnh , những công việc này.

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. Saperate PostgreSQL db cho từng ứng dụng khách, với việc di chuyển tự động khi tạo ứng dụng khách trên một ứng dụng Django và trên cùng một máy chủ

  2. Chọn cho đến khi hàng khớp trong postgresql?

  3. Postgres đặt hàng theo hiệu suất khóa nước ngoài?

  4. Chỉ mục GIN của PostgreSQL chậm hơn GIST cho pg_trgm?

  5. Heroku trên đường ray - DATABASE_URL không hợp lệ