Iz­man­to­jot PostgreSQL DELETE, var dzēst datus no tabulas. Komandu var precizēt, iz­man­to­jot no­sa­cī­ju­mus, kas ļauj norādīt atsevišķu rindu dzēšanu. Tā kā PostgreSQL dzēšana ir ne­at­grie­ze­nis­ka, ir svarīgi izmantot šo komandu uzmanīgi.

Kas ir PostgreSQL DELETE?

PostgreSQL komanda DELETE tiek izmantota, lai dzēstu ierakstus no tabulas. Iz­man­to­jot klauzulu WHERE, varat atlasīt konkrētas rindas, kuras dzēst. Ja klauzula WHERE netiek izmantota, visi dati no­rā­dī­ta­jā tabulā tiks ne­at­grie­ze­nis­ki dzēsti. Tā kā dati tiek dzēsti ne­at­grie­ze­nis­ki, šo komandu vajadzētu izmantot ar pie­sar­dzī­bu.

Kāda ir PostgreSQL DELETE sintakse?

PostgreSQL DELETE pa­mat­gra­ma­ti­ka ir šāda:

DELETE FROM table_name
WHERE [condition];
postgresql

Komanda DELETE FROM uzsāk rindu dzēšanu no­rā­dī­ta­jā tabulā. Klauzula WHERE ļauj norādīt at­se­viš­ķas rindas, no kurām dati ir jādzēš. Lai īstenotu vairākus no­sa­cī­ju­mus, varat izmantot AND vai OR.

Note

Pirms datu dzēšanas pār­lie­ci­nie­ties, ka jums ir datu bāzes aktuāla rezerves kopija. Dzēšanas darbību varat veikt arī transak­ci­jas ietvaros. Tas palīdz novērst nejaušu datu zudumu, ja komanda tiek izpildīta nepareizi.

Kā dzēst datus no tabulas

Lai labāk izprastu, kā PostgreSQL darbojas DELETE, aplūkosim praktisku piemēru. Vispirms iz­man­to­sim komandu CREATE TABLE, lai izveidotu tabulu ar nosaukumu „customer_list“. Pēc tam to aiz­pil­dī­sim, iz­man­to­jot INSERT INTO. Tabulai ir trīs kolonnas (id, name un city), un tajā ir četri ieraksti:

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

Ja iz­man­to­jat PostgreSQL DELETE bez no­sa­cī­ju­ma, visi dati tabulā tiks dzēsti. Tomēr pašas tabulas struktūra netiks dzēsta. Šādi izskatās šī komanda:

DELETE FROM customer_list;
postgresql

Kā dzēst rindu PostgreSQL

Bieži vien rodas ne­pie­cie­ša­mī­ba dzēst atsevišķu rindu. To var izdarīt, iekļaujot WHERE klauzulu. Piemēram, pieņemsim, ka vēlamies no saraksta dzēst Sullivan (ID numurs 2). Lai to izdarītu, varam izmantot šādu kodu:

DELETE FROM customer_list
WHERE id = 2;
postgresql

Kā atlasīt rindu, iz­man­to­jot vairākus no­sa­cī­ju­mus

Ja strādājat ar lielām tabulām, tajās var būt dublikāti. Lai no­dro­ši­nā­tu, ka tiek dzēsta tikai viena rinda, varat izmantot vairākus no­sa­cī­ju­mus. Ie­priek­šē­jā tabulā ir divi klienti ar uzvārdu Haines, bet mēs vēlamies dzēst tikai otro ierakstu. Lai to izdarītu, varam apvienot divus no­sa­cī­ju­mus:

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

Šī komanda dzēš visas rindas ar nosaukumu „Haines“, kurās laukā id ir skaitlis, kas ir lielāks vai vienāds ar 3. Tā kā pirmajā ierakstā, kurā ir vārds „Haines“, laukā id ir skaitlis, kas ir mazāks par 3, tas paliek datu bāzē pēc dzēšanas komandas izpildes.

Go to Main Menu