Med Post­greSQL DELETE kan du radera data från en tabell. Kommandot kan förfinas med hjälp av villkor, vilket gör att du kan ange att enskilda rader ska tas bort. Eftersom ra­de­ring­ar är oå­ter­kal­le­li­ga i Post­greSQL är det viktigt att använda kommandot med för­sik­tig­het.

Vad är Post­greSQL DELETE?

Kommandot DELETE i Post­greSQL används för att radera poster från en tabell. Med hjälp av klausulen WHERE kan du välja ut vissa rader som ska raderas. Utan klausulen WHERE raderas alla data i den tabell du anger permanent. Eftersom data raderas permanent bör du vara försiktig när du använder detta kommando.

Vad är syntaxen för Post­greSQL DELETE?

Den grund­läg­gan­de syntaxen för Post­greSQL DELETE är följande:

DELETE FROM table_name
WHERE [condition];
post­gresql

Kommandot DELETE FROM initierar radering av rader i den tabell som du anger. Klausulen WHERE låter dig ange enskilda rader där data ska raderas. För att im­ple­men­te­ra flera villkor kan du använda AND eller OR.

Notis

Innan du raderar data ska du se till att du har en aktuell sä­ker­hetsko­pia av databasen. Du kan också utföra ra­de­ring­en inom en trans­ak­tion. Detta hjälper till att förhindra oav­sikt­lig da­ta­för­lust om kommandot utförs felaktigt.

Hur man raderar data från en tabell

För att få en bättre upp­fatt­ning om hur DELETE fungerar i Post­greSQL, låt oss titta på ett praktiskt exempel. Först ska vi använda kommandot CREATE TABLE för att skapa en tabell med namnet “customer_list”. Sedan fyller vi den med INSERT INTO. Tabellen har tre kolumner (id, name och city) och in­ne­hål­ler fyra poster:

|id|name|city|
|-|-|-|
|1|Haines|Sheffield|
|2|Sullivan|Glasgow|
|3|Smith|Newcastle|
|4|Haines|Belfast|
post­gresql

Om du använder Post­greSQL DELETE utan villkor kommer alla data i tabellen att raderas. Ta­bell­struk­tu­ren i sig kommer dock inte att raderas. Så här ser kommandot ut:

DELETE FROM customer_list;
post­gresql

Hur man tar bort en rad i Post­greSQL

Ofta behöver du ta bort en enskild rad. Det kan du göra genom att inkludera en WHERE. Låt oss till exempel säga att vi vill ta bort Sullivan (id-nummer 2) från vår lista. Vi kan använda följande kod för att göra det:

DELETE FROM customer_list
WHERE id = 2;
post­gresql

Hur man spe­ci­fi­ce­rar en rad med hjälp av flera villkor

Om du arbetar med stora tabeller kan det hända att du har dubbla poster. För att sä­ker­stäl­la att endast en rad raderas kan du använda flera villkor. I tabellen ovan har vi två kunder som heter Haines, men vi vill bara radera den andra posten. För att göra detta kan vi kombinera två villkor:

DELETE FROM customer_list
WHERE name = 'Haines'
AND id >= 3;
post­gresql

Detta kommando raderar alla rader med namnet Haines som har ett id som är större än eller lika med 3. Eftersom den första posten som in­ne­hål­ler Haines har ett id som är mindre än 3, finns den kvar i databasen efter att ra­de­rings­kom­man­dot har utförts.

Gå till huvudmeny