Hallo,
Hmm, nicht für MySQL. Nicht für den MS SQL-Server 2005.
Ich hab das Beispiel jetzt für PostgreSQL nachgebaut. Die Syntax funktioniert. Und ich bilde mir ein, dass ich es auch schon oft so in Oracle gemacht habe. (In der vorher genannten Syntax verbirgt sich zwar ein logischer Fehler, der jetzt aber nichts mit dieser Funktionalität zu tun hat. PostgreSQL hätte auch mein Ursprungsbeispiel ausgeführt.
Die Abfrage hat allerdings alle version-Fehler aktualisiert, ich will aber nur ein bestimmtes, wodurch ich noch ein WHERE hinten drangehängt habe.
)
Dieses Beispiel funktioniert und ist gültiges SQL:
CREATE TABLE Themengebiet
(t_id SERIAL NOT NULL PRIMARY KEY,
t_beschreibung VARCHAR(150) NULL,
t_version INTEGER NOT NULL default 0
);
CREATE UNIQUE INDEX XPKThemengebiet
ON Themengebiet
(
t_id
);
INSERT INTO Themengebiet (t_beschreibung, t_version) VALUES ('Thema Eins', 0);
INSERT INTO Themengebiet (t_beschreibung, t_version) VALUES ('thema Zwei', 0);
UPDATE Themengebiet set t_version = (SELECT t_version+1 FROM Themengebiet WHERE t_id='1') WHERE t_id='1';
Markus
--
