V Po­stgre­SQL DELETE lahko izbrišete podatke iz tabele. Ukaz lahko omejite s pomočjo pogojev, kar vam omogoča, da določite izbris po­sa­me­znih vrstic. Ker je izbris v Po­stgre­SQL ne­po­vra­ten, je pomembno, da ukaz upo­ra­blja­te previdno.

Kaj je Po­stgre­SQL DELETE?

Ukaz DELETE v Po­stgre­SQL se uporablja za brisanje vnosov iz tabele. Z uporabo klavzule WHERE lahko izberete določene vrstice, ki jih želite zbrisati. Brez klavzule WHERE bodo vsi podatki v navedeni tabeli trajno izbrisani. Ker se podatki izbrišejo trajno, morate pri uporabi tega ukaza ravnati previdno.

Kakšna je sintaksa za Po­stgre­SQL DELETE?

Osnovna sintaksa Po­stgre­SQL DELETE je naslednja:

DELETE FROM table_name
WHERE [condition];
po­stgre­sql

Ukaz DELETE FROM sproži brisanje vrstic v tabeli, ki jo določite. Klavzula WHERE vam omogoča, da določite posamezne vrstice, iz katerih naj se podatki izbrišejo. Za uporabo več pogojev lahko uporabite AND ali OR.

Note

Preden izbrišete podatke, se pre­pri­čaj­te, da imate po­so­do­blje­no varnostno kopijo baze podatkov. Operacijo brisanja lahko izvedete tudi v okviru tran­sak­ci­je. S tem pre­pre­či­te naključno izgubo podatkov, če bi ukaz izvedli ne­pra­vil­no.

Kako izbrisati podatke iz tabele

Da bi bolje razumeli, kako deluje DELETE v Po­stgre­SQL, si oglejmo praktičen primer. Najprej bomo z ukazom CREATE TABLE ustvarili tabelo z imenom »customer_list«. Nato jo bomo napolnili z ukazom INSERT INTO. Tabela ima tri stolpce (id, name in city) in vsebuje štiri vnose:

|id|name|city|
|-|-|-|
|1|Haines|Sheffield|
|2|Sullivan|Glasgow|
|3|Smith|Newcastle|
|4|Haines|Belfast|
po­stgre­sql

Če uporabite Po­stgre­SQL DELETE brez pogoja, bodo vsi podatki v tabeli izbrisani. Sama struktura tabele pa ne bo izbrisana. Ukaz je naslednji:

DELETE FROM customer_list;
po­stgre­sql

Kako izbrisati vrstico v Po­stgre­SQL

Pogosto se zgodi, da morate izbrisati posamezno vrstico. To lahko storite z vklju­či­tvi­jo klavzule WHERE. Recimo, da želimo iz seznama izbrisati Sullivana (ID številka 2). Za to lahko uporabimo naslednjo kodo:

DELETE FROM customer_list
WHERE id = 2;
po­stgre­sql

Kako določiti vrstico z uporabo več pogojev

Če delate z obsežnimi tabelami, se lahko zgodi, da imate podvojene vnose. Da bi za­go­to­vi­li, da se izbriše le ena vrstica, lahko uporabite več pogojev. V zgornji tabeli imamo dva stranka z imenom Haines, vendar želimo izbrisati le drugi vnos. Za to lahko združimo dva pogoja:

DELETE FROM customer_list
WHERE name = 'Haines'
AND id >= 3;
po­stgre­sql

Ta ukaz izbriše vse vrstice z imenom Haines, pri katerih je vrednost id večja ali enaka 3. Ker je pri prvem vnosu, ki vsebuje ime Haines, vrednost id manjša od 3, ta vnos po izvedbi ukaza za brisanje ostane v bazi podatkov.

Go to Main Menu