steve: nächsten autoindex herausfinden

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?

  1. 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

  2. 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

    --
    Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"