Kuidas kasutada PostgreSQL-i DELETE-käsku
PostgreSQL DELETE versioonis on võimalik tabelist andmeid kustutada. Käsku saab täpsustada tingimuste abil, mis võimaldab määrata kindlaks üksikute ridade kustutamise. Kuna PostgreSQL-is on kustutamine pöördumatu, on oluline kasutada seda käsku ettevaatlikult.
Mis on PostgreSQL DELETE?
PostgreSQL-i käsku DELETE kasutatakse kirjetest tabelist kustutamiseks. Klausli WHERE abil saate valida kustutatavad read. Ilma klauslita WHERE kustutatakse määratud tabeli kõik andmed lõplikult. Kuna andmed kustutatakse lõplikult, tuleb seda käsku kasutada ettevaatlikult.
Milline on PostgreSQL DELETE süntaks?
PostgreSQL DELETE põhiline süntaks on järgmine:
DELETE FROM table_name
WHERE [condition];postgresqlKäsk DELETE FROM käivitab määratud tabeli ridade kustutamise. Lausega WHERE saate määrata konkreetsed read, millest andmed tuleb kustutada. Mitme tingimuse rakendamiseks võite kasutada AND või OR.
Enne andmete kustutamist veenduge, et teil on andmebaasi ajakohane varukoopia. Kustutamist on võimalik teostada ka tehingu raames. See aitab vältida andmete juhuslikku kaotust, kui käsk täidetakse valesti.
Kuidas kustutada andmeid tabelist
Et saada parem ülevaade sellest, kuidas PostgreSQL-is töötab DELETE, vaatame ühte praktilist 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|postgresqlKui kasutate PostgreSQL DELETE ilma tingimuseta, kustutatakse kõik tabelis olevad andmed. Tabelistruktuur ise aga ei kustutata. Käsk näeb välja järgmine:
DELETE FROM customer_list;postgresqlKuidas kustutada rida PostgreSQL-is
Sageli on vaja kustutada üksik rida. Selleks tuleb lisada WHERE. Oletame näiteks, et soovime oma nimekirjast kustutada Sullivani (ID-number 2). Selleks võime kasutada järgmist koodi:
DELETE FROM customer_list
WHERE id = 2;postgresqlKuidas määrata rida mitme tingimuse abil
Kui töötate suurte tabelitega, võib seal esineda dubleeritud kirjeid. Et tagada, et kustutatakse 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 kombineerida kahte tingimust:
DELETE FROM customer_list
WHERE name = 'Haines'
AND id >= 3;postgresqlSee 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 kustutamiskäsu täitmist andmebaasi alles.