*Markus: Subquery auf selbe Tabelle

Beitrag lesen

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

--