PostgreSQL DELETE: eliminazione di contenuti da una tabella
In PostgreSQL è possibile utilizzare DELETE
per cancellare i contenuti di una tabella. Inoltre, si possono definire condizioni specifiche per il comando, in modo che l’eliminazione riguardi solo determinate righe. Poiché non è possibile ripristinare i dati eliminati, occorre utilizzare il comando con molta attenzione.
Che cos’è PostgreSQL DELETE
?
Il comando DELETE
di PostgreSQL serve a eliminare le voci di una tabella. La condizione WHERE
ti permette di selezionare righe specifiche da cui rimuovere il contenuto. Se usi il comando senza la clausola WHERE
, invece, tutto il contenuto della tabella in questione viene cancellato definitivamente. Per questo motivo ti consigliamo di utilizzare il comando con estrema cautela.
- Hardware dedicato al 100%
- Fatturazione al minuto
- Potenziato dai processori Intel® Xeon® e AMD
PostgreSQL DELETE
: sintassi e funzionamento
La sintassi DELETE
in PostgreSQL presenta la seguente struttura di base:
DELETE FROM nome_della_tabella
WHERE [condizione];
postgresqlLa parola chiave DELETE FROM
dà inizio all’eliminazione nella tabella specificata. La condizione WHERE
permette di specificare le righe di cui eliminare il contenuto. Per tenere conto di più condizioni è possibile elencarle con AND
o OR
.
Prima di eliminare i dati, assicurati di avere un backup aggiornato del database o di eseguire il processo di eliminazione in una transazione. In questo modo puoi evitare di perdere dati importanti nel caso in cui il comando venga eseguito accidentalmente in modo errato.
Eliminazione di tutti i contenuti da una tabella
Per chiarire meglio il funzionamento di DELETE
in PostgreSQL ti mostriamo un esempio pratico. A tal fine utilizziamo il comando CREATE TABLE per creare una nuova tabella PostgreSQL denominata “Elenco clienti”. Quindi inseriamo i diversi contenuti in questa tabella con INSERT INTO. La tabella ha tre colonne denominate “ID”, “Nome” e “Località” e contiene inizialmente quattro voci. Ad esempio:
|ID|Nome|Località|
|-|-|-|
|1|Rossi|Roma|
|2|Verdi|Milano|
|3|Bianchi|Torino|
|4|Rossi|Napoli|
postgresqlA questo punto, per mantenere la tabella cancellando però tutto il contenuto possiamo utilizzare DELETE
in PostgreSQL senza ulteriori condizioni. Per il nostro esempio, il comando da usare è quindi il seguente:
DELETE FROM Elenco_clienti;
postgresqlEliminazione di una riga con DELETE
in PostgreSQL
Spesso, tuttavia, si rende necessario eliminare solo una riga specifica. Anche in questo caso è possibile utilizzare DELETE
in PostgreSQL. A tal fine usiamo il comando aggiungendo una clausola WHERE
. Nel nostro esempio vorremmo cancellare il cliente “Verdi” con l’ID “2”. Il relativo codice si presenta quindi così:
DELETE FROM Elenco_clienti
WHERE ID = 2;
postgresqlSelezione di righe specifiche con più condizioni
In alcune tabelle, specialmente quelle più lunghe, è possibile la presenza di voci duplicate e quindi non univoche. Se vuoi assicurarti di cancellare solo la riga desiderata, puoi utilizzare DELETE
in PostgreSQL specificando più condizioni. Nel nostro esempio abbiamo due clienti di nome “Rossi” e vogliamo rimuovere dalla tabella solo la seconda voce. A tal fine occorre combinare due condizioni. Il codice che ti serve è il seguente:
DELETE FROM Elenco_clienti
WHERE Nome = 'Rossi'
AND ID >= 3;
postgresqlIn questo modo vengono eliminate tutte le righe in cui il nome è “Rossi” e l’ID è maggiore o uguale a “3”. Poiché la prima voce con questo nome ha un numero ID minore di “3”, tale voce rimane nel database anche dopo aver eseguito il comando di cancellazione.