SQL Schnellstart – Auto-Increment
In den letzten Artikeln haben wir uns über Primärschlüssel unterhalten. Meistens nimmt man als Primärschlüssel eine einfache Zahl und nennt dieses Attribut ID - danach muss man beim Hinzufügen einfach die vorherige ID um +1 erhöhen. Das ist auf Dauer aber mühselig, da wir immer wissen müssen, welche Zahl bzw. ID der letzte Eintrag in unserer Datenbank hatte. Um dieses Problem einfacher zu machen, gibt es in SQL das AUTO_INCREMENT Schlüsselwort.
SQL AUTO_INCREMENT: Definition
Das "AUTO-INCREMENT"-Schlüsselwort in SQL erlaubt es, einzigartige Nummern automatisch generieren zu lassen, wenn man einen neuen Datensatz in eine Tabelle einfügt. Meistens wird dies bei Primärschlüssel verwendet, man kann es aber auch bei normalen Attributen bzw. Spalten benutzen.
SQL AUTO_INCREMENT: Syntax
Die Syntax von "AUTO_INCREMENT" sieht folgendermaßen aus:
CREATE TABLE Kunde (
KundenID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Vorname VARCHAR(255) NOT NULL,
Nachname VARCHAR(255) NOT NULL
);
Wie du siehst, muss man bei der Tabellendefinition mit CREATE TABLE einfach nur das AUTO_INCREMENT Schlüsselwort angeben. Standardgemäß ist der Startwert bei AUTO_INCREMENT 1.
SQL_AUTO_INCREMENT: Beispiel
Beim Hinzufügen eines neuen Kunden musst du nun nicht mehr die Spalte KundenID angeben, denn diese wird jetzt automatisch generiert. Das bedeutet, dass du INSERT INTO nur mit dem Vornamen und dem Nachnamen erstellen kannst. Das sieht folgendermaßen aus:
INSERT INTO Kunde (Vorname, Nachname)
VALUES ('Jonas', 'Entenfeind'),
('Fabian', 'Fuchs'),
('Lukas', 'van Sachsen'),
('Konstantino', 'Huss');
Schau dir das Ergebnis an:
SQL-Challenge: Klassenliste
Erstelle mit "CREATE TABLE" eine Klassenliste. Die Schüler sollen dabei der Reihenfolge nach automatisch eine "Schülernummer" bekommen. Die Lösung findest du unten.
Lösung:
CREATE TABLE Schueler (
SchuelerID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Vorname VARCHAR(255) NOT NULL,
Nachname VARCHAR(255) NOT NULL
);
Wie du siehst, ist das im Grunde dasselbe wie oben ? - es wurden nur andere Bezeichnungen gewählt.
Fazit
Mit AUTO_INCREMENT kennst du nun ein nützliches Schlüsselwort, das du auf jeden Fall im Hinterkopf behalten solltest. Es kann dir das Einfügen von Datensätzen in eine Tabelle um einiges einfacher machen.