AUTO INCREMENT
Constraints & Struktur
Eine automatisch hochzählende Spalte vergibt für jede neue Zeile selbstständig eine eindeutige, fortlaufende Zahl. Das ist ideal für Primärschlüssel wie KundenID: Du musst dich nicht selbst um eine freie ID kümmern.
Dialekte im Vergleich
Hier kocht jedes System sein eigenes Süppchen – das Schlüsselwort ist überall anders:
| System | Schreibweise |
|---|---|
| MySQL / MariaDB | AUTO_INCREMENT |
| SQL Server | IDENTITY(1,1) |
| PostgreSQL | SERIAL (bzw. GENERATED AS IDENTITY) |
| SQLite | AUTOINCREMENT |
Beispiel MySQL
CREATE TABLE Kunden ( KundenID INT AUTO_INCREMENT PRIMARY KEY, Name VARCHAR(100) NOT NULL, Stadt VARCHAR(50) );
Beispiel SQL Server
CREATE TABLE Kunden ( KundenID INT IDENTITY(1,1) PRIMARY KEY, Name VARCHAR(100) NOT NULL );
Die Werte (1,1) bedeuten: Startwert 1, Schrittweite 1.
Beispiel PostgreSQL
CREATE TABLE Kunden ( KundenID SERIAL PRIMARY KEY, Name VARCHAR(100) NOT NULL );
Einfügen ohne ID
Beim INSERT lässt du die ID-Spalte einfach weg – die Datenbank füllt sie automatisch:
INSERT INTO Kunden (Name, Stadt)
VALUES ('Müller GmbH', 'Berlin');
-- KundenID wird automatisch z.B. 1, dann 2, ...
Stolperfalle
Gelöschte IDs werden in der Regel nicht wiederverwendet. Löschst du Zeile 3, beginnt die nächste Zeile trotzdem bei 4 – es entstehen also Lücken. Das ist normal und kein Fehler. Verlasse dich nicht darauf, dass die IDs lückenlos sind. Den zuletzt vergebenen Wert erfragst du z. B. mit LAST_INSERT_ID() (MySQL) oder SCOPE_IDENTITY() (SQL Server).