nächsten autoindex herausfinden
steve
- datenbank
habe ein problem, ich muss wissen, wie der nächste autoindex meiner Tabelle heißt. der wird automatisch incementiert.
aber mit dem, dass ich mir die höchste id suche und eins dazu zähl, klappts nicht, da man einträge löschen kann, denn da bleibt der autoindex ja immer noch unverändert.
jemand ne idee?
Halihallo steve
habe ein problem, ich muss wissen, wie der nächste autoindex meiner Tabelle heißt. der wird automatisch incementiert.
http://www.mysql.com/doc/de/SHOW_TABLE_STATUS.html
aber mit dem, dass ich mir die höchste id suche und eins dazu zähl, klappts nicht, da man einträge löschen kann, denn da bleibt der autoindex ja immer noch unverändert.
Ist auch sinnvoll.
Informiere dich allgemein über die
http://www.mysql.com/doc/de/SHOW.html Syntax, dann kannst du auch die Frage
von oben (fast) lösen. Aber Andres hat recht, der Speicher _eines_ Records, müsstest
du selber berechnen.
Viele Grüsse
Philipp
Moin Moin !
habe ein problem, ich muss wissen, wie der nächste autoindex meiner Tabelle heißt. der wird automatisch incementiert.
aber mit dem, dass ich mir die höchste id suche und eins dazu zähl, klappts nicht, da man einträge löschen kann, denn da bleibt der autoindex ja immer noch unverändert.
jemand ne idee?
Das willst Du nicht. Du willst höchstens den letzten autoincrement-Wert haben, denn der nächste ist nicht sicher vorhersagbar. Eine ge-ROLLBACK-te Transaktion könnte einen Wert "fressen", während parallel eine andere erfolgreiche Transaktion dessen Folgewert benutzt.
Du willst *nach* einem INSERT den aktuell benutzten Wert haben.
Oracle: SELECT sequencename.CURRVAL FROM DUAL
MSSQL: SELECT @@IDENTITY
PostgreSQL: SELECT currval(sequencename)
Rest: RTFM!
Alexander