Med PostgreSQL DELETE kan du slette data fra en tabell. Kommandoen kan avgrenses ved hjelp av betingelser, slik at du kan angi at enkelte rader skal slettes. Siden slettinger i PostgreSQL ikke kan gjøres om, er det viktig å bruke kommandoen med forsiktighet.

Hva er PostgreSQL DELETE?

Kommandoen DELETE i PostgreSQL brukes til å slette oppføringer fra en tabell. Ved å bruke klausulen WHERE kan du velge bestemte rader som skal slettes. Uten klausulen WHERE vil alle dataene i den angitte tabellen bli slettet permanent. Siden dataene slettes permanent, bør du være forsiktig når du bruker denne kommandoen.

Hva er syntaksen for PostgreSQL DELETE?

Den grunnleggende syntaksen i PostgreSQL DELETE er som følger:

DELETE FROM table_name
WHERE [condition];
postgresql

Kommandoen DELETE FROM starter slettingen av rader i den angitte tabellen. Klausulen WHERE lar deg angi bestemte rader der data skal slettes. For å angi flere betingelser kan du bruke AND eller OR.

Note

Før du sletter data, må du sørge for at du har en oppdatert sikkerhetskopi av databasen. Du kan også utføre slettingen innenfor en transaksjon. Dette bidrar til å forhindre utilsiktet tap av data dersom kommandoen utføres feil.

Hvordan slette data fra en tabell

For å få et bedre inntrykk av hvordan DELETE fungerer i PostgreSQL, skal vi se på et praktisk eksempel. Først skal vi bruke kommandoen CREATE TABLE til å opprette en tabell med navnet «customer_list». Deretter skal vi fylle den med data ved hjelp av INSERT INTO. Tabellen har tre kolonner (id, name og city) og inneholder fire oppføringer:

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

Hvis du bruker PostgreSQL DELETE uten noen betingelse, vil alle dataene i tabellen bli slettet. Selve tabellstrukturen vil imidlertid ikke bli slettet. Slik ser kommandoen ut:

DELETE FROM customer_list;
postgresql

Hvordan slette en rad i PostgreSQL

Ofte vil du måtte slette en enkelt rad. Dette gjør du ved å inkludere en WHERE. La oss for eksempel si at vi ønsker å slette Sullivan (ID-nummer 2) fra listen vår. Da kan vi bruke følgende kode:

DELETE FROM customer_list
WHERE id = 2;
postgresql

Hvordan velge ut en rad ved hjelp av flere kriterier

Hvis du arbeider med store tabeller, kan det hende du har dupliserte oppføringer. For å sikre at bare én rad slettes, kan du bruke flere betingelser. I tabellen ovenfor har vi to kunder som heter Haines, men vi ønsker bare å slette den andre oppføringen. For å gjøre dette kan vi kombinere to betingelser:

DELETE FROM customer_list
WHERE name = 'Haines'
AND id >= 3;
postgresql

Denne kommandoen sletter alle rader med navnet Haines der verdien id er større enn eller lik 3. Siden den første oppføringen som inneholder Haines har en verdi id som er mindre enn 3, forblir den i databasen etter at slettingskommandoen er utført.

Go to Main Menu