Hallo,
wenn ich in MySQL folgendes schreibe....
welche Version? Etwa den Release Candidate der 5.1, deren Handbuch Du verlinkst.
INSERT INTO Themengebiet
(beschreibung, version) VALUES(?,
(SELECT MAX(version)+1 FROM Themengebiet)
);
nach diesem fehlerhaften Statement bekommst Du völlig unüberraschend ...
> ..bekomme ich folgende Fehlermeldung:
> You can't specify target table 'Themengebiet' for update in FROM clause
die dazu passende Fehlermeldung.
> Daraufhin fand ich das hier (siehe ganz unten)...
> <http://dev.mysql.com/doc/refman/5.1/de/subquery-errors.html>
Die deutsche Handbuchversion sollte man nach Möglichkeit vermeiden. Sie stiftet mehr Verwirrung als Erleuchtung :-)
> Aber das ist doch gültiges SQL, oder?
Hmm, nicht für MySQL. Nicht für den MS SQL-Server 2005.
> Falls ja, und MySQL kann solche trivialen Dinge nicht, dann verstehe ich, dass MySQL den Ruf einer Spielzeugdatenbank hat.
Wenn Du zweimal in einem Statement auf die gleiche Tabelle zugreifst und es sich dabei um zwei verschiedene Aspekte handelt, liegt es nahe einen Aliasnamen zu verwenden. Trivial, nicht wahr?
Freundliche Grüße
Vinzenz