# 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:

```postgresql
DELETE FROM table_name
WHERE [condition];
```

Kommandoen `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`.

Note 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](https://www.ionos.com/da-dk/digitalguide/server/konfiguration/postgresql-create-table/) til at oprette en tabel med navnet »customer\_list«. Derefter udfylder vi den ved hjælp af [INSERT INTO](https://www.ionos.com/da-dk/digitalguide/server/konfiguration/postgresql-insert-into/). Tabellen har tre kolonner (`id`, `name` og `city`) og indeholder fire poster:

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

Hvis du bruger PostgreSQL `DELETE` uden en betingelse, slettes alle data i tabellen. Selve tabelstrukturen slettes dog ikke. Her er, hvordan kommandoen ser ud:

```postgresql
DELETE FROM customer_list;
```

## Så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:

```postgresql
DELETE FROM customer_list
WHERE id = 2;
```

### Så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:

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

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 indeholder Haines, har en `id`, der er mindre end `3`, forbliver den i databasen, efter at slettekommandoen er udført.


This is a markdown version of: [https://www.ionos.com/da-dk/digitalguide/server/konfiguration/postgresql-delete/](https://www.ionos.com/da-dk/digitalguide/server/konfiguration/postgresql-delete/) for AI/LLM consumption.