SirWayne: nexter autoincrement wer

Hallo zusammen ,
wie kann man den nexten oder letzten auto_increment einer Spalte herausfinden???

  1. Hallo SirWayne,

    wie kann man den nexten oder letzten auto_increment einer Spalte herausfinden?

    Was für eine Datenbank sprichst du womit an?

    Ich nehme mal an du nutzt MySQL. Dann hilft dir LAST_INSERT_ID(). Das funktioniert aber nur, wenn du zuvor ein INSERT oder UPDATE gemacht hast.
    Andernfalls kannst du über sowas wie MAX(auto_inc_spalte) nachdenken, wobei das natürlich nicht zwingend richtig sein muss.

    Bitte befrage in Zukunft auch das Archiv.

    Grüße
      David

    --
    >>Nobody will ever need more than 640k RAM!<<
    1981 Bill Gates
    1. yo,

      Andernfalls kannst du über sowas wie MAX(auto_inc_spalte) nachdenken, wobei das natürlich nicht zwingend richtig sein muss.

      darüber nachzudenken lohnt sich nicht, weil es schlicht falsch ist.

      Ilja

      1. Hallo Ilja,

        Andernfalls kannst du über sowas wie MAX(auto_inc_spalte) nachdenken, wobei das natürlich nicht zwingend richtig sein muss.
        darüber nachzudenken lohnt sich nicht, weil es schlicht falsch ist.

        Warum? Bitte liefer doch auch noch eine Begründung für deine Behauptung...
        Gesetzt den Fall, dass nur Datensätze eingefügt werden, aber keine gelöscht. Dann wird die auto_inc doch immer um eins erhöht. Der nächste Wert ließe sich dann durch ein MAX bestimmen.

        Grüße
          David

        --
        >>Nobody will ever need more than 640k RAM!<<
        1981 Bill Gates
        1. echo $begrüßung;

          Andernfalls kannst du über sowas wie MAX(auto_inc_spalte) nachdenken, wobei das natürlich nicht zwingend richtig sein muss.
          darüber nachzudenken lohnt sich nicht, weil es schlicht falsch ist.
          Warum? Bitte liefer doch auch noch eine Begründung für deine Behauptung...
          Gesetzt den Fall, dass nur Datensätze eingefügt werden, aber keine gelöscht. Dann wird die auto_inc doch immer um eins erhöht. Der nächste Wert ließe sich dann durch ein MAX bestimmen.

          Der nächste Wert lässt sich mit MAX(spalte)+1 nur unter ganz bestimmten Bedingungen ermitteln:

          • Der Autoincrement-Wert wurde nicht manuell über ALTER TABLE verbogen.
          • Der Anwender ist nicht an dem für seine Sitzung relevanten Wert interessiert sondern an dem, der für alle Nutzer gilt.

          Es darf den Anwender auch nicht interessieren, dass andere Anwender zwischen seiner Abfrage und seinem nächsten auto_increment-Vorgang auf einer Tabelle eigene auto_increment-Vorgänge dazwischenschieben können.

          echo "$verabschiedung $name";

  2. echo $begrüßung;

    wie kann man den nexten oder letzten auto_increment einer Spalte herausfinden???

    Wie schon richtig erwähnt, ist LAST_INSERT_ID() die Antwort. Sie ist im Prinzip die einzig richtige Antwort, denn diese Funktion stellt auch sicher, dass es sich um den in einer bestimmten Sitzung zuletzt eingefügten Wert handelt. Nebenher laufende Sitzungen anderer Nutzer beeinflussen die Rückgabe nicht.

    Der Wert der nächsten ID kann über SHOW TABLE STATUS abgefragt werden. Der Wert lässt sich auch ändern: ALTER TABLE table AUTO_INCREMENT = value. Zu beachten ist bei den letzten beiden Punkten auch wieder das Problem der Nebenläufigkeit. Mit SHOW TABLE STATUS die nächste einzufügende ID zu ermitteln ist nur auf einem Einbenutzersystem sinnvoll. Am besten ist es, diese Idee gleich wieder zu verwerfen und LAST_INSERT_ID() zu verwenden. Einige APIs in diversen Systemen stellen diese Information auch über eigene Funktionen bereit, beispielsweise PHP mit mysql_insert_id().

    echo "$verabschiedung $name";