Update (SQL)

Izvor: Hrvatska internetska enciklopedija
Prijeđi na navigaciju Prijeđi na pretraživanje

SQL naredba UPDATE služi za mijenjanje podataka u jednom ili više redaka u tablici. mogu se promijeniti svi redovi ili samo podskup redaka, na temelju uvjeta.

Naredba UPDATE ima sljedeći oblik:[1]

UPDATE ime_tablice SET ime_stupca = vrijednost [, ime_stupca = vrijednost ...] [WHERE uvjet]

Da bi UPDATE bio uspješan, korisnik mora imati odgovarajuća prava (UPDATE privilegije) za tablicu ili stupac, nova vrijednost ne smije narušavati ograničenja (referencijalni integritet, primarni ključevi, unique indeksi, CHECK ograničenja, i NOT NULL ograničenja).

Primjeri

Postavi vrijednost stupca C1 u tablici T na 1, samo u onim recima gdje je vrijednost stupca C2 jednaka "a".

<syntaxhighlight lang="sql">UPDATE T SET C1 = 1 WHERE C2 = 'a'</syntaxhighlight>

Povećaj vrijednost stupca C1 za 1 ako je vrijednost stupca C2 jednaka "a".

<syntaxhighlight lang="sql">UPDATE T SET C1 = C1 + 1 WHERE C2 = 'a'</syntaxhighlight>

Dadaj string "text" na početak stupca C1 ako je vrijednost stupca C2 jednaka "a".

<syntaxhighlight lang="sql">UPDATE T SET C1 = 'text' || C1 WHERE C2 = 'a'</syntaxhighlight>

Postavi vrijednost stupca C1 u tablici T1 u 2, samo ako je vrijednost stupca C2 jedna iz podskupa vrijednosti stupca C3 u tablici T2 za koje vrijedi da im je vrijednost stupca C4 jednaka 0. <syntaxhighlight lang="sql"> UPDATE T1 SET C1 = 2 WHERE C2 IN ( SELECT C3

              FROM   T2
              WHERE  C4 = 0)

</syntaxhighlight>

Moguće je promijeniti više stupaca jednom naredbom:

<syntaxhighlight lang="sql">UPDATE T SET C1 = 1, C2 = 2</syntaxhighlight>

Složeni uvjeti i JOIN-i su također dozvoljeni:

<syntaxhighlight lang="sql">UPDATE T SET A = 1 WHERE C1 = 1 AND C2 = 2</syntaxhighlight>

<syntaxhighlight lang="sql">UPDATE a SET a.[updated_column] = updatevalue FROM articles a JOIN classification c ON a.articleID = c.articleID WHERE c.classID = 1 </syntaxhighlight>

Izvori