Condividi
DELETE CASCADE in PostgreSQL
Ho un database PostgreSQL sulle cui tabelle vorrei ottenere l'effetto di delete a cascata quando vengono cancellate le righe selezionate. Su queste tabelle però non è definita la regola ON DELETE CASCADE
, come posso fare? C'è un altro modo?
Qualcosa di equivalente a questo per intenderci:
DELETE FROM my_table CASCADE;
In Corso
5
PostgreSQL
01-06-2018
1 Risposta
2862 Visite
0
Risposte ( 1 approvate )
NO non puoi farlo, per automatizzare a livello di database un effetto a cascata, anche in PostgreSQL devi dapprima definire una foreign key che relazioni le tabelle e poi su questa applicare un vincolo di constraint (regola) come
ON DELETE CASCADE
Ad esempio se hai impiegati e buste paghe, se cancelli una riga impiegato in automatico (a cascata) vengono cancellate anche le sue buste paghe poiché ad esso relazionate.
Puoi ottenere un comportamento analogo via codice, via linguaggio di programmazione che invoca un'altra query per fare il DELETE a Cascata, ma ovviamente non è performante, pulita ed elegante come la soluzione descritta sopra a livello di database.