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

Làm thế nào để thực hiện cập nhật theo tầng?

Trong Postgres (và các RDBM khác), các cập nhật xếp tầng chỉ áp dụng cho các khóa ngoại. Ví dụ:

create table groups (
    group_id int primary key
);
    
create table users (
    user_id int primary key, 
    group_id int references groups on update cascade
);

insert into groups values (1);
insert into users values (1, 1);
update groups set group_id = 10 where group_id = 1;

select * from users;

 user_id | group_id 
---------+----------
       1 |       10
(1 row) 

Trên thực tế, các tùy chọn khác là không cần thiết. Nếu bạn cảm thấy cần phải thực hiện việc này đối với cột không phải là khóa ngoại, điều đó có nghĩa là mô hình đó được thiết kế kém (nó không phải là chuẩn hóa ). Mặt khác, khả năng cập nhật theo tầng có chọn lọc các khóa ngoại không giải quyết được bất kỳ vấn đề thực tế nào mà còn phá vỡ các quy tắc chung.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách sao lưu các chức năng chỉ trong Postgres

  2. PostgreSQL có giữ các trình thông dịch pl * của nó được tải liên tục không?

  3. Tham gia truy vấn đếm trên create_series () và truy xuất giá trị Null là '0'

  4. Lợi ích của việc sử dụng tổng hợp giao dịch với pgbouncer là gì?

  5. postgres:nhận truy vấn thực thi từ truy vấn với các tham số