PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да направя каскадна актуализация?

В Postgres (и други RDBM) каскадните актуализации се прилагат изключително за външни ключове. Пример:

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) 

Всъщност други опции не са необходими. Ако смятате, че трябва да направите това за колона, която не е външен ключ, това означава, че моделът е проектиран зле (не е нормализиран ). От друга страна, възможността за селективно каскадно актуализиране на чужди ключове не решава никакъв практически проблем, а по-скоро нарушава общите правила.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. как да съхранявате PostgreSQL jsonb с помощта на SpringBoot + JPA?

  2. Проверете дали Postgresql слуша

  3. Изпълнете динамична кръстосана заявка

  4. Копирайте данни от таблица от една DB в друга

  5. pg_dump postgres база данни от отдалечен сървър, когато порт 5432 е блокиран