Kapitel 4. Tabellen, Spaltentypen und Datensätze

Inhaltsverzeichnis
4.1. Wie funktioniert AUTO_INCREMENT?
4.2. Wie kann ich die AUTO_INCREMENT-Nummer des nächsten Datensatzes ermitteln?
4.3. Wie kann ich Umlaute richtig sortieren?
4.4. Wie kann ich Tabellen kopieren?

4.1. Wie funktioniert AUTO_INCREMENT?

Für jede Tabelle kann genau eine Integer-Spalte mit dem Zusatz AUTO_INCREMENT versehen werden. Wird in diese Tabelle ein neuer Datensatz per INSERT eingefügt, so erhält er automatisch in diesem Feld die nächste noch freie Nummer. Wird der Wert für dieses Feld beim INSERT explizit angegeben, so schlägt das Einfügen fehl, wenn dieser Wert bereits belegt ist.

Nachdem ein neuer Datensatz per INSERT eingefügt wurde, kann per LAST_INSERT_ID() die ID des eben eingefügten Datensatzes ermittelt werden.

Werden aus einer Tabelle, die ein AUTO_INCREMENT-Feld enthält Datensätze entfernt, so werden die nun frei werdenden Nummern unter bestimmten Umständen wieder verwendet. Dies gilt, wenn

  1. der Datensatz mit der höchsten Nummer gelöscht wurde und die Tabelle nicht vom Typ MyISAM ist,

  2. oder alle Datensätze der Tabelle per DELETE FROM tbl_name; gelöscht wurden.

Insbesondere werden Nummern, die durch das Löschen von Datensätzen, die nicht am Ende der Tabelle stehen, frei werden, nicht wieder verwendet. Es ist nicht sinnvoll, diese Lücken manuelle durch das Einfügen von Datensätzen zu füllen.