sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan laver man en kaskadeopdatering?

I Postgres (og andre RDBM'er) gælder cascading-opdateringer udelukkende for fremmednøgler. Eksempel:

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) 

Faktisk er andre muligheder ikke nødvendige. Hvis du føler behov for at gøre dette for en kolonne, der ikke er en fremmednøgle, betyder det, at modellen er dårligt designet (den er ikke normaliseret ). På den anden side løser muligheden for selektiv kaskade-opdatering af fremmednøgler ikke noget praktisk problem, men bryder snarere de generelle regler.



  1. Er det muligt at opgradere MySQL i MAMP til MySQL 5.7?

  2. Forskellen mellem sys.columns, sys.system_columns og sys.all_columns i SQL Server

  3. UTC_TIME Eksempler – MySQL

  4. Sådan deaktiveres streng SQL-tilstand i MySQL 5.7