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

PostgreSQL:FOREIGN KEY/ON SLET CASCADE

En fremmednøgle med en kaskadesletning betyder, at hvis en post i den overordnede tabel slettes, så vil de tilsvarende poster i den underordnede tabel automatisk blive slettet. Dette kaldes en kaskade sletning.

Du siger på den modsatte måde, det er ikke sådan, at når du sletter fra den underordnede tabel, vil registreringer blive slettet fra den overordnede tabel.

UPDATE 1:

PÅ SLET CASCADE mulighed er at angive, om du vil have rækker slettet i en undertabel, når tilsvarende rækker slettes i den overordnede tabel. Hvis du ikke angiver overlappende sletninger, forhindrer standardadfærden for databaseserveren dig i at slette data i en tabel, hvis andre tabeller refererer til det.

Hvis du angiver denne indstilling, sletter databaseserveren senere, når du sletter en række i den overordnede tabel, også alle rækker, der er knyttet til denne række (fremmednøgler) i en undertabel. Den vigtigste fordel ved kaskadesletningsfunktionen er, at den giver dig mulighed for at reducere mængden af ​​SQL-sætninger, du skal bruge for at udføre slettehandlinger.

Så det handler om, hvad der vil ske, når du sletter rækker fra den overordnede tabel og ikke fra den underordnede tabel.

Så i dit tilfælde, når brugeren fjerner poster fra CAT-tabellen, slettes rækker fra bogtabellen. :)

Håber dette hjælper dig :)



  1. DROP FUNKTION uden at kende antallet/typen af ​​parametre?

  2. SQLite udenlandsk nøgle

  3. Liquibase/PostgreSQL:hvordan bevares tabelkassen korrekt?

  4. Oracle:Sådan tælles nul- og ikke-nul rækker