Sådan bruges PostgreSQL DELETE
Med PostgreSQL DELETE kan du slette data fra en tabel. Kommandoen kan præciseres ved hjælp af betingelser, så du kan angive, hvilke enkelte rækker der skal slettes. Da sletninger i PostgreSQL ikke kan fortrydes, er det vigtigt at bruge kommandoen med omhu.
Hvad er PostgreSQL DELETE?
Kommandoen DELETE i PostgreSQL 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 forsigtighed, når du bruger denne kommando.
Hvad er syntaksen for PostgreSQL DELETE?
Den grundlæggende syntaks i PostgreSQL DELETE er som følger:
DELETE FROM table_name
WHERE [condition];postgresqlKommandoen DELETE FROM starter sletningen 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 betingelser kan du bruge AND eller OR.
Før du sletter data, skal du sikre dig, at du har en opdateret sikkerhedskopi af databasen. Du kan også udføre sletningen inden for en transaktion. Dette hjælper med at forhindre utilsigtet datatab, hvis kommandoen udføres forkert.
Sådan slettes data fra en tabel
For at få et bedre indtryk af, hvordan DELETE fungerer i PostgreSQL, skal vi se på et praktisk eksempel. Først bruger vi kommandoen 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 indeholder fire poster:
|id|name|city|
|-|-|-|
|1|Haines|Sheffield|
|2|Sullivan|Glasgow|
|3|Smith|Newcastle|
|4|Haines|Belfast|postgresqlHvis du bruger PostgreSQL DELETE uden en betingelse, slettes alle data i tabellen. Selve tabelstrukturen slettes dog ikke. Her er, hvordan kommandoen ser ud:
DELETE FROM customer_list;postgresqlSådan slettes en række i PostgreSQL
Ofte vil det være nødvendigt 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;postgresqlSådan angiver du en række ved hjælp af flere betingelser
Hvis du arbejder med store tabeller, kan der forekomme dubletter. For at sikre, at kun én række slettes, kan du anvende flere betingelser. 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 betingelser:
DELETE FROM customer_list
WHERE name = 'Haines'
AND id >= 3;postgresqlDenne kommando sletter alle rækker med navnet Haines, hvor id er større end eller lig med 3. Da den første post, der indeholder Haines, har en id, der er mindre end 3, forbliver den i databasen, efter at slettekommandoen er udført.