PostgreSQL DELETE avulla voit poistaa tietoja tau­lu­kos­ta. Komentoa voidaan tarkentaa ehtojen avulla, jolloin voit määrittää yk­sit­täis­ten rivien pois­ta­mi­sen. Koska poistot ovat PostgreSQL:ssä pe­ruut­ta­mat­to­mia, on tärkeää käyttää komentoa huo­lel­li­ses­ti.

Mikä on PostgreSQL DELETE?

PostgreSQL: n DELETE käytetään tie­tuei­den pois­ta­mi­seen tau­lu­kos­ta. WHERE avulla voit valita pois­tet­ta­vat rivit. Ilman WHERE kaikki mää­rit­tä­mä­si taulukon tiedot pois­te­taan pysyvästi. Koska tiedot pois­te­taan pysyvästi, sinun tulee noudattaa va­ro­vai­suut­ta tätä komentoa käy­tet­täes­sä.

Mikä on PostgreSQL DELETE:n syntaksi?

PostgreSQL DELETE:n pe­rus­ra­ken­teet ovat seuraavat:

DELETE FROM table_name
WHERE [condition];
postgresql

Komento DELETE FROM käyn­nis­tää rivien pois­ta­mi­sen mää­rit­tä­mäs­tä­si tau­lu­kos­ta. Lausek­keel­la WHERE voit määrittää yk­sit­täi­set rivit, joiden tiedot halutaan poistaa. Useiden ehtojen mää­rit­tä­mi­seen voit käyttää AND tai OR.

Huomio

Ennen tietojen pois­ta­mis­ta varmista, että sinulla on ajan­ta­sai­nen var­muus­ko­pio tie­to­kan­nas­ta. Voit myös suorittaa pois­to­toi­min­non osana tran­sak­tio­ta. Näin vältät ta­hat­to­man tietojen me­ne­tyk­sen, jos komento suo­ri­te­taan vir­heel­li­ses­ti.

Kuinka poistaa tietoja tau­lu­kos­ta

Jotta saisimme paremman kä­si­tyk­sen siitä, miten DELETE toimii PostgreSQL:ssä, tar­kas­tel­laan­pa käytännön esi­merk­kiä. Ensin luomme CREATE TABLE -ko­men­nol­la taulukon nimeltä ”customer_list”. Sen jälkeen täytämme sen INSERT INTO-ko­men­nol­la. Tau­lu­kos­sa on kolme saraketta (id, name ja city) ja se sisältää neljä tietuetta:

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

Jos käytät PostgreSQL DELETE ilman ehtoa, kaikki taulukon tiedot pois­te­taan. Taulukon rakenne itsessään ei kui­ten­kaan poistu. Komento näyttää tältä:

DELETE FROM customer_list;
postgresql

Kuinka poistaa rivi PostgreSQL:ssä

Usein joudut pois­ta­maan yk­sit­täi­sen rivin. Voit tehdä tämän li­sää­mäl­lä WHERE. Oletetaan esi­mer­kik­si, että haluamme poistaa Sul­li­va­nin (tun­nus­nu­me­ro 2) luet­te­los­tam­me. Voimme tehdä sen seu­raa­val­la koodilla:

DELETE FROM customer_list
WHERE id = 2;
postgresql

Kuinka määrittää rivi useiden ehtojen avulla

Jos kä­sit­te­let suuria tau­lu­koi­ta, niissä voi olla pääl­lek­käi­siä tietueita. Var­mis­taak­se­si, että vain yksi rivi pois­te­taan, voit käyttää useita ehtoja. Yllä olevassa tau­lu­kos­sa on kaksi Haines-nimistä asiakasta, mutta haluamme poistaa vain toisen tietueen. Tätä varten voimme yhdistää kaksi ehtoa:

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

Tämä komento poistaa kaikki rivit, joiden nimessä on Haines ja joiden id arvo on vähintään 3. Koska en­sim­mäi­sen Haines-merkinnän id arvo on alle 3, se säilyy tie­to­kan­nas­sa pois­to­ko­men­non suo­rit­ta­mi­sen jälkeen.

Siirry pää­va­lik­koon