Hallo,
ich benötige den *nächsten* (nicht den letzten, wie ich den kriege, ist mir klar) Wert, der in ein auto_increment-Feld eingefügt wird. Also so was wie nextval in Postgres oder gen_id in Interbase/Firebird.
last_insert_value+1 geht nicht, weil es ja sein kann, dass der letzte INSERT bei einer ganz anderen Tabelle stattgefunden hat - und bei multi-row inserts gibt es auch den ersten Wert zurück statt dem letzten, kann ich also nicht gebrauchen.
Ich habe schon überlegt, ob ich eine eigene Tabelle mit allen Sequenzen und deren Werten anlege. Problem ist, das Ganze müsste auch mit mehreren Nutzern im Netz funktionieren.
Könnte ich eine nicht transaktionsfähige Tabelle (z.B. TYPE=MYISAM) in eine ansonsten aus InnoDB-Tabellen bestehende DB pflanzen und dort jeweils meine aktuellen Werte abfragen bzw. diese erhöhen? Stehen die dann außerhalb meiner Transaktionen? Dann müsste das doch einigermaßen mehrplatzfähig zu machen sein, oder?
Gruß,
Stefan
ich benötige den *nächsten* (nicht den letzten, wie ich den kriege, ist mir klar) Wert, der in ein auto_increment-Feld eingefügt wird. Also so was wie nextval in Postgres oder gen_id in Interbase/Firebird.
last_insert_value+1 geht nicht, weil es ja sein kann, dass der letzte INSERT bei einer ganz anderen Tabelle stattgefunden hat - und bei multi-row inserts gibt es auch den ersten Wert zurück statt dem letzten, kann ich also nicht gebrauchen.
Ich habe schon überlegt, ob ich eine eigene Tabelle mit allen Sequenzen und deren Werten anlege. Problem ist, das Ganze müsste auch mit mehreren Nutzern im Netz funktionieren.
Könnte ich eine nicht transaktionsfähige Tabelle (z.B. TYPE=MYISAM) in eine ansonsten aus InnoDB-Tabellen bestehende DB pflanzen und dort jeweils meine aktuellen Werte abfragen bzw. diese erhöhen? Stehen die dann außerhalb meiner Transaktionen? Dann müsste das doch einigermaßen mehrplatzfähig zu machen sein, oder?
Gruß,
Stefan
Comment