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

PostgreSQL:CHIAVE ESTERA/ON ELIMINA CASCATA

Una chiave esterna con un'eliminazione a cascata significa che se un record nella tabella padre viene eliminato, i record corrispondenti nella tabella figlio verranno automaticamente eliminati. Questa operazione è chiamata eliminazione a cascata.

Stai dicendo in modo opposto, questo non è che quando elimini dalla tabella figlio, i record verranno eliminati dalla tabella padre.

UPDATE 1:

SU ELIMINA CASCATA l'opzione è specificare se si desidera eliminare le righe in una tabella figlio quando le righe corrispondenti vengono eliminate nella tabella padre. Se non specifichi le eliminazioni a catena, il comportamento predefinito del server di database ti impedisce di eliminare i dati in una tabella se altre tabelle fanno riferimento ad essa.

Se si specifica questa opzione, in seguito, quando si elimina una riga nella tabella padre, il server di database elimina anche tutte le righe associate a tale riga (chiavi esterne) in una tabella figlio. Il vantaggio principale della funzione di eliminazione a cascata è che consente di ridurre la quantità di istruzioni SQL necessarie per eseguire le azioni di eliminazione.

Quindi si tratta di ciò che accadrà quando eliminerai le righe dalla tabella padre non dalla tabella figlio.

Quindi, nel tuo caso, quando l'utente rimuove le voci dalla tabella CAT, le righe verranno eliminate dalla tabella dei libri. :)

Spero che questo ti aiuti :)