Elimina Cascade di PostgreSQL

Elimina Cascade di PostgreSQL

“Quando si lavora con i database PostgreSQL, incontrerai istanze in cui è necessario abbandonare i record da una tabella. Prima di eseguire una query Elimina, è importante garantire che la tabella non lasci alcuna relazione incompleta tra le tabelle.

In PostgreSQL, possiamo usare la funzione Cascade Elimina per raggiungere questo obiettivo. Questa funzione consente a un'operazione di eliminazione di rimuovere i record specificati e eventuali chiavi straniere che li fanno riferimento.

Utilizzando questo articolo, esamineremo come eseguire una Cascade Elimina in PostgreSQL."

Elimina Cascade di PostgreSQL

La funzione Cascade Elimina è molto semplice. Garantisce che l'eliminazione di qualsiasi record dei genitori rimuova anche i record del bambino. Per evitare di rimuovere accidentalmente i registri dei bambini, è possibile impostare i vincoli chiave esterni nella tabella principale su NULL.

Vediamo come possiamo realizzare questo.

Avvia impostando un database di esempio. Nella tua utilità PSQL, esegui il comando:

1
2
3
4
5
6
7
8
Crea database "Cascade_delete_db;"
CON
Proprietario = Postgres
Codifica = 'utf8'
Lc_collate = 'c'
Lc_ctype = 'c'
TableSpace = pg_default
Limite di connessione = -1;

Una volta creato, passare a quel database eseguendo il comando:

1
\ c cascade_delete_db;

Successivamente, creiamo la tabella principale eseguendo la query:

1
2
3
4
5
6
7
Crea utenti di tabelle (
Chiave primaria seriale ID,
full_name varchar (100),
Email Varchar (255),
Country Varchar (50),
Dipartimento_Foreign_key int non null
);

Successivamente, possiamo creare la tabella dei bambini come:

1
2
3
4
Crea dipartimento delle tabelle (
Chiave primaria seriale User_ID,
Dipartimento Varchar (50)
);

Successivamente, dobbiamo aggiungere un vincolo chiave esterno alla tabella principale, come mostrato nel comando seguente:

1
2
Gli utenti della tabella altera aggiungono chiave estera (Dipartimento_foreign_Key)
Dipartimento dei riferimenti (user_id) su Elimina Cascade;

Ora possiamo inserire alcuni dati di esempio nelle tabelle come mostrato:

1
2
3
4
5
6
7
8
Inserisci i valori del dipartimento (dipartimento)
("Sviluppo del gioco"),
("Dev-Ops"),
("Backend-dev");
INSERT IN UPITER (full_name, e -mail, paesi, dipartimenti_foreign_key)
('Alley K', '[email protected] ',' noi ', 1),
("Kaspa V", "V"[email protected] ',' ca ', 2),
('Dev.W ',' [email protected] ',' af ', 3);

Possiamo quindi interrogare i tavoli come:

1
Seleziona * dagli utenti;

Questo dovrebbe restituire la tabella:

Dal tavolo del dipartimento, possiamo correre:

1
Seleziona * dal dipartimento;

La tabella risultante:

Una volta pronti tutti i dati di esempio, possiamo eseguire una Cascade Elimina come mostrato nella query seguente:

1
Elimina dal dipartimento in cui Dipartimento = 'Dev-Ops';

Nell'istruzione sopra, utilizziamo la normale query elimina per rimuovere un record in cui il dipartimento è uguale a "Dev-OPS."Poiché abbiamo impostato la Cascade Elimina, possiamo controllare la tabella degli utenti per verificare l'utente con il dipartimento_foreign_key di 2 viene eliminato.

1
Seleziona * dagli utenti;

Possiamo vedere che solo due record sono nella tabella degli utenti nonostante noi rimuoviamo il record dal tavolo dei dipartimenti.

Congratulazioni, hai imparato come eseguire una Cascade Elimina in Postgresql.

Terminazione

Questo tutorial ti ha insegnato come collegare due tabelle utilizzando una chiave straniera e impostare una funzione Cascade Elimina.

Grazie per aver letto!!