Hello,
die gab's m.W. auch schon in der 3er-version von mysql.
insert into products (wgr, sort)
select $wgr, max(b.sort)+1
from products bdas könnte allerdings problematisch werden, weil du in die selbe tabelle einfügst, aus der du auch auslesen willst.
"Die Ziel-Tabelle des INSERT-Statements darf nicht in der FROM-Klausel des SELECT-Teils der Anfrage erscheinen, weil es in ANSI-SQL verboten ist, aus derselben Tabelle auszuwählen (SELECT), in die eingefügt wird."
http://dev.mysql.com/doc/mysql/de/INSERT_SELECT.html
Danke für den Hinweis.
Allerdings lese ich nur einen einzigen aggregierten Wert aus der Quelltabelle. Der wird dann anschließend aber auch verändert. Danach ist das Statement abgegessen.
Meinst Du, ich sollte da doch besser zwei (werden dann ja wieder vier mit LOCK und UNLOCK) Statements daraus machen? Solche Selbstbezüge habe ich früher bei dBase schon immer gebaut. Dieser wäre erlaubt gewesen, da eindeutig erst gelesen und dann geschrieben wird.
Funktioniert hat es bisher immer, aber das ist für mich ja kein Kriterium.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau