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.

Server dedicati
Performance e innovazione
  • 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];
postgresql

La 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.

N.B.

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|
postgresql

A 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;
postgresql

Eliminazione 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;
postgresql

Selezione 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;
postgresql

In 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.

Hai trovato questo articolo utile?
Vai al menu principale