PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment faire une mise à jour en cascade ?

Dans Postgres (et d'autres RDBM), les mises à jour en cascade s'appliquent exclusivement aux clés étrangères. Exemple :

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) 

En fait, d'autres options ne sont pas nécessaires. Si vous ressentez le besoin de le faire pour une colonne qui n'est pas une clé étrangère, cela signifie que le modèle est mal conçu (ce n'est pas normalisé ). D'autre part, la possibilité d'une mise à jour sélective en cascade des clés étrangères ne résout aucun problème pratique mais enfreint plutôt les règles générales.