sql >> Databasteknik >  >> RDS >> PostgreSQL

PostgreSQL:FOREIGN KEY/ON DELETE CASCADE

En främmande nyckel med en kaskadradering betyder att om en post i den överordnade tabellen raderas, kommer motsvarande poster i den underordnade tabellen automatiskt att tas bort. Detta kallas en kaskadradering.

Du säger på ett motsatt sätt, det här är inte att när du tar bort från den underordnade tabellen kommer poster att raderas från den överordnade tabellen.

UPDATE 1:

PÅ DELETE CASCADE alternativet är att ange om du vill att rader ska tas bort i en underordnad tabell när motsvarande rader tas bort i den överordnade tabellen. Om du inte anger överlappande borttagningar hindrar databasserverns standardbeteende dig från att radera data i en tabell om andra tabeller refererar till det.

Om du anger det här alternativet, när du senare tar bort en rad i den överordnade tabellen, tar databasservern också bort alla rader som är associerade med den raden (främmande nycklar) i en underordnad tabell. Den främsta fördelen med funktionen för kaskadradering är att den låter dig minska mängden SQL-satser du behöver för att utföra raderingsåtgärder.

Så det handlar om vad som kommer att hända när du tar bort rader från den överordnade tabellen, inte från den underordnade tabellen.

Så i ditt fall när användaren tar bort poster från CATs tabell kommer rader att raderas från boktabellen. :)

Hoppas detta hjälper dig :)



  1. Vad är Multi Dimension OLAP CUBE och ge exempel på kub med mer än 3 dimensioner

  2. Inaktivera och senare aktivera alla tabellindex i Oracle

  3. Oracle-databasen hänger oändligt i UPDATE-frågor

  4. sqlite get-fält med mer än 2 MB