PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jak wykonać aktualizację kaskadową?

W Postgres (i innych RDBM) aktualizacje kaskadowe dotyczą wyłącznie kluczy obcych. Przykład:

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) 

W rzeczywistości inne opcje nie są potrzebne. Jeśli czujesz potrzebę zrobienia tego dla kolumny, która nie jest kluczem obcym, oznacza to, że model jest źle zaprojektowany (nie jest to znormalizowane ). Z drugiej strony możliwość selektywnej kaskadowej aktualizacji kluczy obcych nie rozwiązuje żadnego praktycznego problemu, ale raczej łamie ogólne zasady.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Prześlij dane z tematu Kafki do PostgreSQL w JSON

  2. Błąd migracji Django:kolumna nie istnieje

  3. Postgresql :Jak wybrać pierwsze n procent (%) wpisów z każdej grupy/kategorii?

  4. SELECT DISTINCT jest wolniejszy niż oczekiwano na moim stole w PostgreSQL

  5. Zapomniałem hasła, które wprowadziłem podczas instalacji postgres