Daten verändern

Neben dem Einfügen von Daten ist es mit SQL sehr leicht möglich, Daten zu modifizieren. In diesem Zusammenhang ist der Befehl UPDATE von zentraler Bedeutung:

test=# \h UPDATE
Command:     UPDATE
Description: update rows of a table
Syntax:
UPDATE [ ONLY ] table SET column = { expression | DEFAULT } [, ...]
    [ FROM fromlist ]
    [ WHERE condition ]

UPDATE ermöglicht die effiziente Modifikation von Datensätzen in einer Tabelle. In der SET Clause gibt man an, welchen Wert die Spalten nach dem UPDATE annehmen sollen. In der WHERE Clause definiert man, welche Datensätze vom UPDATE betroffen sein sollen.

Bevor wir uns ein Beispiel ansehen, wollen wir uns den Datenbestand in Erinnerung rufen:

test=# SELECT * FROM t_person;
   svnr    |     name
-----------+---------------
 123456789 | Peter Fischer
 9876543   |
 123123123 | Anton Hudlic
(3 rows)

Ziel ist es jetzt, den Namen der Person mit der Sozialversicherungsnummer '9876543' zu modifizieren. Das geht dann so:

test=# UPDATE t_person SET name = 'Paul Fischer' WHERE svnr = '9876543';
UPDATE 1
test=# SELECT * FROM t_person;
   svnr    |     name
-----------+---------------
 123456789 | Peter Fischer
 123123123 | Anton Hudlic
 9876543   | Paul Fischer
(3 rows)

PostgreSQL bietet auch die Möglichkeit, Spalten auf einen Default-Wert zu setzen. Haben Sie bei CREATE TABLE keinen anderen DEFAULT Wert verwendet, wird PostgreSQL eine leere Spalte erzeugen:

test=# UPDATE t_person SET name = DEFAULT WHERE svnr = '9876543';
UPDATE 1
test=# SELECT * FROM t_person;
   svnr    |     name
-----------+---------------
 123456789 | Peter Fischer
 123123123 | Anton Hudlic
 9876543   |
(3 rows)

Wollen Sie etwas komplexere UPDATEs durchführen, so ist auch das möglich aber dazu später mehr.



http://www.postgresql.at