Hi,
Ich habe eine Tabelle links (id (AutoIncrement), title, url, position)
Beim Einfügen eines neuen Links soll die Position auf (max(position) + 1) gesetzt werden.
Welchen Zweck erfüllt diese Spalte neben der auto_increment-ID, die doch automatisch hochgezählt wird?
Ich könnte das ganze so regeln, dass ich zuerst in einem eigenen query max(position) zu ermitteln und das dann in einem zweiten query mit einem einfachen INSERT einzufügen.
Nein, dann fängst du dir ein Nebenläufigkeitsproblem ein.
Mein Bisheriger Ansatz fügt allerdings NULL für die Position ein:
INSERT INTO links
(title, url, position)
SELECT
'Meine Seite',
'http://example.com/foo',
((MAX(position)) + 1)
FROM links;
Hast du dir mal angeschaut, was dir das SELECT-Statement liefert, wenn du es einzeln ausführst?
MfG ChrisB
“Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]