Med Po­st­greSQL DELETE kan du slette data fra en tabel. Kom­man­do­en kan præ­ci­se­res ved hjælp af be­tin­gel­ser, så du kan angive, hvilke enkelte rækker der skal slettes. Da slet­nin­ger i Po­st­greSQL ikke kan fortrydes, er det vigtigt at bruge kom­man­do­en med omhu.

Hvad er Po­st­greSQL DELETE?

Kom­man­do­en DELETE i Po­st­greSQL bruges til at slette poster fra en tabel. Ved hjælp af WHERE kan du vælge bestemte rækker, der skal slettes. Uden WHERE slettes alle data i den angivne tabel permanent. Da data slettes permanent, bør du udvise for­sig­tig­hed, når du bruger denne kommando.

Hvad er syntaksen for Po­st­greSQL DELETE?

Den grund­læg­gen­de syntaks i Po­st­greSQL DELETE er som følger:

DELETE FROM table_name
WHERE [condition];
po­st­gresql

Kom­man­do­en DELETE FROM starter slet­nin­gen af rækker i den tabel, du angiver. Klausulen WHERE giver dig mulighed for at angive enkelte rækker, hvor dataene skal slettes. For at angive flere be­tin­gel­ser kan du bruge AND eller OR.

Note

Før du sletter data, skal du sikre dig, at du har en opdateret sik­ker­heds­ko­pi af databasen. Du kan også udføre slet­nin­gen inden for en transak­tion. Dette hjælper med at forhindre util­sig­tet datatab, hvis kom­man­do­en udføres forkert.

Sådan slettes data fra en tabel

For at få et bedre indtryk af, hvordan DELETE fungerer i Po­st­greSQL, skal vi se på et praktisk eksempel. Først bruger vi kom­man­do­en CREATE TABLE til at oprette en tabel med navnet »customer_list«. Derefter udfylder vi den ved hjælp af INSERT INTO. Tabellen har tre kolonner (id, name og city) og in­de­hol­der fire poster:

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

Hvis du bruger Po­st­greSQL DELETE uden en be­tin­gel­se, slettes alle data i tabellen. Selve ta­bel­struk­tu­ren slettes dog ikke. Her er, hvordan kom­man­do­en ser ud:

DELETE FROM customer_list;
po­st­gresql

Sådan slettes en række i Po­st­greSQL

Ofte vil det være nød­ven­digt at slette en enkelt række. Det kan du gøre ved at indsætte en WHERE. Lad os for eksempel sige, at vi vil slette Sullivan (id-nummer 2) fra vores liste. Det kan vi gøre ved hjælp af følgende kode:

DELETE FROM customer_list
WHERE id = 2;
po­st­gresql

Sådan angiver du en række ved hjælp af flere be­tin­gel­ser

Hvis du arbejder med store tabeller, kan der forekomme dubletter. For at sikre, at kun én række slettes, kan du anvende flere be­tin­gel­ser. I tabellen ovenfor har vi to kunder ved navn Haines, men vi ønsker kun at slette den anden post. For at gøre dette kan vi kombinere to be­tin­gel­ser:

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

Denne kommando sletter alle rækker med navnet Haines, hvor id er større end eller lig med 3. Da den første post, der in­de­hol­der Haines, har en id, der er mindre end 3, forbliver den i databasen, efter at slet­te­kom­man­do­en er udført.

Gå til ho­ved­me­nu­en