Hur man använder PostgreSQL DELETE
Med PostgreSQL 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 raderingar är oåterkalleliga i PostgreSQL är det viktigt att använda kommandot med försiktighet.
Vad är PostgreSQL DELETE?
Kommandot DELETE i PostgreSQL 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 PostgreSQL DELETE?
Den grundläggande syntaxen för PostgreSQL DELETE är följande:
DELETE FROM table_name
WHERE [condition];postgresqlKommandot 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 implementera flera villkor kan du använda AND eller OR.
Innan du raderar data ska du se till att du har en aktuell säkerhetskopia av databasen. Du kan också utföra raderingen inom en transaktion. Detta hjälper till att förhindra oavsiktlig dataförlust om kommandot utförs felaktigt.
Hur man raderar data från en tabell
För att få en bättre uppfattning om hur DELETE fungerar i PostgreSQL, 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 innehåller fyra poster:
|id|name|city|
|-|-|-|
|1|Haines|Sheffield|
|2|Sullivan|Glasgow|
|3|Smith|Newcastle|
|4|Haines|Belfast|postgresqlOm du använder PostgreSQL DELETE utan villkor kommer alla data i tabellen att raderas. Tabellstrukturen i sig kommer dock inte att raderas. Så här ser kommandot ut:
DELETE FROM customer_list;postgresqlHur man tar bort en rad i PostgreSQL
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;postgresqlHur man specificerar 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äkerställa 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;postgresqlDetta 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 innehåller Haines har ett id som är mindre än 3, finns den kvar i databasen efter att raderingskommandot har utförts.