dedlfix: mysql_insert_id

Beitrag lesen

Hi!

OK, es is also der erste Wert - wieder was gelernt :)

Danke gleichfalls. Ich hatte den Fall noch nicht und las das gerade im Handbuch.

Mmh es gibt ja noch 2 andere Möglichkeiten.
Wenn ich das DELAYED angebe, wartet der mit dem Insert ja, bis die Table nicht mehr genutzt wird. Also sollten dann alle Values hintereinander eingefügt werden. Allerdings könnte das ja eine Weile dauern...

Der INSERT wartet, aber dein Query-Aufruf nicht. Du bekommst kein dir nützliches Ergebnis über LAST_INSERT_ID(), weil du nicht benachrichtigt wird, wann das INSERT bearbeitet wurde. DELAYED scheidet also schonmal komplett aus.

Oder das HIGH_PRIORITY, wenn ich das richtig verstanden habe, werden andere INSERTs auf diese Tabelle in eine Qeue gehangen, bis der HIGH_PRIORITY INSERT durch ist. Oder verstehe ich das gerade falsch?

Siehe auch Concurrent Inserts. Ich verstehe vor allem den Satz

"If there are multiple INSERT statements, they are queued and performed in sequence, concurrently with the SELECT statements."

so, dass INSERTs sich generell nicht in die Quere kommen und die Konkurrenz-Situation nur zwischen dem aktuellen Insert und irgendwelchen SELECTs zu sehen ist. LOW/HIGH_PRIORITY regelt nur diese Situation, hat also nichts mit der Atomarität der Inserts zu tun.

Lo!