PostgreSQL DELETE ver­sioo­nis on võimalik tabelist andmeid kustutada. Käsku saab täp­sus­tada tin­gi­muste abil, mis võimaldab määrata kindlaks üksikute ridade kus­tu­ta­mise. Kuna PostgreSQL-is on kus­tu­ta­mine pöör­du­matu, on oluline kasutada seda käsku et­te­vaat­li­kult.

Mis on PostgreSQL DELETE?

PostgreSQL-i käsku DELETE ka­su­ta­takse kirjetest tabelist kus­tu­ta­miseks. Klausli WHERE abil saate valida kus­tu­ta­ta­vad read. Ilma klauslita WHERE kus­tu­ta­takse määratud tabeli kõik andmed lõplikult. Kuna andmed kus­tu­ta­takse lõplikult, tuleb seda käsku kasutada et­te­vaat­li­kult.

Milline on PostgreSQL DELETE süntaks?

PostgreSQL DELETE põhiline süntaks on järgmine:

DELETE FROM table_name
WHERE [condition];
postgresql

Käsk DELETE FROM käivitab määratud tabeli ridade kus­tu­ta­mise. Lausega WHERE saate määrata konk­reet­sed read, millest andmed tuleb kustutada. Mitme tingimuse ra­ken­da­miseks võite kasutada AND või OR.

Note

Enne andmete kus­tu­ta­mist veenduge, et teil on and­me­ba­asi ajakohane va­ru­koo­pia. Kus­tu­ta­mist on võimalik teostada ka tehingu raames. See aitab vältida andmete ju­hus­likku kaotust, kui käsk täi­de­takse valesti.

Kuidas kustutada andmeid tabelist

Et saada parem ülevaade sellest, kuidas PostgreSQL-is töötab DELETE, vaatame ühte prak­ti­list näidet. Esmalt loome käsuga CREATE TABLE tabeli nimega „customer_list“. Seejärel täidame selle käsuga INSERT INTO. Tabelil on kolm veergu (id, name ja city) ning see sisaldab nelja kirjet:

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

Kui kasutate PostgreSQL DELETE ilma tin­gi­mu­seta, kus­tu­ta­takse kõik tabelis olevad andmed. Ta­be­li­struk­tuur ise aga ei kustutata. Käsk näeb välja järgmine:

DELETE FROM customer_list;
postgresql

Kuidas kustutada rida PostgreSQL-is

Sageli on vaja kustutada üksik rida. Selleks tuleb lisada WHERE. Oletame näiteks, et soovime oma ni­me­kir­jast kustutada Sullivani (ID-number 2). Selleks võime kasutada järgmist koodi:

DELETE FROM customer_list
WHERE id = 2;
postgresql

Kuidas määrata rida mitme tingimuse abil

Kui töötate suurte ta­be­li­tega, võib seal esineda dub­lee­ri­tud kirjeid. Et tagada, et kus­tu­ta­takse vaid üks rida, võite kasutada mitut tingimust. Eespool toodud tabelis on kaks klienti nimega Haines, kuid me soovime kustutada vaid teise kirje. Selleks võime kom­bi­nee­rida kahte tingimust:

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

See käsk kustutab kõik read, mille nimes on „Haines“ ja mille väärtus id on vähemalt 3. Kuna esimese „Haines“ sisaldava kirje väärtus id on väiksem kui 3, jääb see pärast kus­tu­ta­mis­käsu täitmist and­me­ba­asi alles.

Go to Main Menu