In Post­gre­SQL è possibile uti­liz­za­re DELETE per can­cel­la­re i contenuti di una tabella. Inoltre, si possono definire con­di­zio­ni spe­ci­fi­che per il comando, in modo che l’eli­mi­na­zio­ne riguardi solo de­ter­mi­na­te righe. Poiché non è possibile ri­pri­sti­na­re i dati eliminati, occorre uti­liz­za­re il comando con molta at­ten­zio­ne.

Che cos’è Post­gre­SQL DELETE?

Il comando DELETE di Post­gre­SQL serve a eliminare le voci di una tabella. La con­di­zio­ne WHERE ti permette di se­le­zio­na­re righe spe­ci­fi­che da cui rimuovere il contenuto. Se usi il comando senza la clausola WHERE, invece, tutto il contenuto della tabella in questione viene can­cel­la­to de­fi­ni­ti­va­men­te. Per questo motivo ti con­si­glia­mo di uti­liz­za­re il comando con estrema cautela.

Server dedicati
Per­for­man­ce e in­no­va­zio­ne
  • Pro­ces­so­ri al­l'a­van­guar­dia di ultima ge­ne­ra­zio­ne
  • Hardware dedicato ad alte pre­sta­zio­ni
  • Data center cer­ti­fi­ca­ti ISO

Post­gre­SQL DELETE: sintassi e fun­zio­na­men­to

La sintassi DELETE in Post­gre­SQL presenta la seguente struttura di base:

DELETE FROM nome_della_tabella
WHERE [condizione];
post­gre­sql

La parola chiave DELETE FROM dà inizio all’eli­mi­na­zio­ne nella tabella spe­ci­fi­ca­ta. La con­di­zio­ne WHERE permette di spe­ci­fi­ca­re le righe di cui eliminare il contenuto. Per tenere conto di più con­di­zio­ni è possibile elencarle con AND o OR.

N.B.

Prima di eliminare i dati, as­si­cu­ra­ti di avere un backup ag­gior­na­to del database o di eseguire il processo di eli­mi­na­zio­ne in una tran­sa­zio­ne. In questo modo puoi evitare di perdere dati im­por­tan­ti nel caso in cui il comando venga eseguito ac­ci­den­tal­men­te in modo errato.

Eli­mi­na­zio­ne di tutti i contenuti da una tabella

Per chiarire meglio il fun­zio­na­men­to di DELETE in Post­gre­SQL ti mostriamo un esempio pratico. A tal fine uti­liz­zia­mo il comando CREATE TABLE per creare una nuova tabella Post­gre­SQL de­no­mi­na­ta “Elenco clienti”. Quindi inseriamo i diversi contenuti in questa tabella con INSERT INTO. La tabella ha tre colonne de­no­mi­na­te “ID”, “Nome” e “Località” e contiene ini­zial­men­te quattro voci. Ad esempio:

|ID|Nome|Località|
|-|-|-|
|1|Rossi|Roma|
|2|Verdi|Milano|
|3|Bianchi|Torino|
|4|Rossi|Napoli|
post­gre­sql

A questo punto, per mantenere la tabella can­cel­lan­do però tutto il contenuto possiamo uti­liz­za­re DELETE in Post­gre­SQL senza ulteriori con­di­zio­ni. Per il nostro esempio, il comando da usare è quindi il seguente:

DELETE FROM Elenco_clienti;
post­gre­sql

Eli­mi­na­zio­ne di una riga con DELETE in Post­gre­SQL

Spesso, tuttavia, si rende ne­ces­sa­rio eliminare solo una riga specifica. Anche in questo caso è possibile uti­liz­za­re DELETE in Post­gre­SQL. A tal fine usiamo il comando ag­giun­gen­do una clausola WHERE. Nel nostro esempio vorremmo can­cel­la­re il cliente “Verdi” con l’ID “2”. Il relativo codice si presenta quindi così:

DELETE FROM Elenco_clienti
WHERE ID = 2;
post­gre­sql

Selezione di righe spe­ci­fi­che con più con­di­zio­ni

In alcune tabelle, spe­cial­men­te quelle più lunghe, è possibile la presenza di voci duplicate e quindi non univoche. Se vuoi as­si­cu­rar­ti di can­cel­la­re solo la riga de­si­de­ra­ta, puoi uti­liz­za­re DELETE in Post­gre­SQL spe­ci­fi­can­do più con­di­zio­ni. Nel nostro esempio abbiamo due clienti di nome “Rossi” e vogliamo rimuovere dalla tabella solo la seconda voce. A tal fine occorre combinare due con­di­zio­ni. Il codice che ti serve è il seguente:

DELETE FROM Elenco_clienti
WHERE Nome = 'Rossi'
AND ID >= 3;
post­gre­sql

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 can­cel­la­zio­ne.

Vai al menu prin­ci­pa­le