Zurück zu: SQL Tutorial
AUTO INCREMENT Feld
Durch die automatische Inkrementierung kann beim Einfügen eines neuen Datensatzes in eine Tabelle automatisch eine eindeutige Nummer generiert werden.
Oft handelt es sich hierbei um das Primärschlüsselfeld, das bei jedem Einfügen eines neuen Datensatzes automatisch erstellt werden soll.
Syntax für MySQL
Die folgende SQL Anweisung definiert die Spalte „Personid“ als automatisch inkrementiertes Primärschlüsselfeld in der Tabelle „Personen“:
CREATE TABLE Persons (
Personid int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
PRIMARY KEY (Personid)
);
MySQL verwendet das Schlüsselwort AUTO_INCREMENT
, um eine Auto-Inkrement-Funktion auszuführen.
Standardmäßig ist der Startwert für AUTO_INCREMENT
1 und wird für jeden neuen Datensatz um 1 erhöht.
Um die AUTO_INCREMENT
Sequenz mit einem anderen Wert beginnen zu lassen, verwenden Sie die folgende SQL Anweisung:
ALTER TABLE Persons AUTO_INCREMENT=100;
Um einen neuen Datensatz in die Tabelle „Personen“ einzufügen, müssen wir KEINEN Wert für die Spalte „Personid“ angeben (ein eindeutiger Wert wird automatisch hinzugefügt):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen');
Die obige SQL Anweisung würde einen neuen Datensatz in die Tabelle „Personen“ einfügen. Der Spalte „Personid“ würde ein eindeutiger Wert zugewiesen. Die Spalte „Vorname“ würde auf „Lars“ und die Spalte „Nachname“ auf „Monsen“ gesetzt.
Syntax für SQL Server
Die folgende SQL Anweisung definiert die Spalte „Personid“ als automatisch inkrementiertes Primärschlüsselfeld in der Tabelle „Personen“:
CREATE TABLE Persons (
Personid int IDENTITY(1,1) PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
Der MS SQL Server verwendet das Schlüsselwort IDENTITY
, um eine Auto-Inkrement-Funktion auszuführen.
Im obigen Beispiel ist der Startwert für IDENTITY
1 und wird für jeden neuen Datensatz um 1 erhöht.
Tipp: Um festzulegen, dass die Spalte „Personid“ beim Wert 10 beginnen und um 5 erhöht werden soll, ändern Sie sie in IDENTITY(10,5)
.
Um einen neuen Datensatz in die Tabelle „Personen“ einzufügen, müssen wir KEINEN Wert für die Spalte „Personid“ angeben (ein eindeutiger Wert wird automatisch hinzugefügt):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen');
Die obige SQL Anweisung würde einen neuen Datensatz in die Tabelle „Personen“ einfügen. Der Spalte „Personid“ würde ein eindeutiger Wert zugewiesen. Die Spalte „Vorname“ würde auf „Lars“ und die Spalte „Nachname“ auf „Monsen“ gesetzt.
Syntax für Access
Die folgende SQL Anweisung definiert die Spalte „Personid“ als automatisch inkrementiertes Primärschlüsselfeld in der Tabelle „Personen“:
CREATE TABLE Persons (
Personid AUTOINCREMENT PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
MS Access verwendet das Schlüsselwort AUTOINCREMENT
, um eine Auto-Inkrement-Funktion auszuführen.
Standardmäßig ist der Startwert für AUTOINCREMENT
1 und wird für jeden neuen Datensatz um 1 erhöht.
Tipp: Um festzulegen, dass die Spalte „Personid“ beim Wert 10 beginnen und um 5 erhöht werden soll, ändern Sie die automatische Inkrementierung in AUTOINCREMENT(10,5)
.
Um einen neuen Datensatz in die Tabelle „Personen“ einzufügen, müssen wir KEINEN Wert für die Spalte „Personid“ angeben (ein eindeutiger Wert wird automatisch hinzugefügt):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen');
Die obige SQL Anweisung würde einen neuen Datensatz in die Tabelle „Personen“ einfügen. Der Spalte „Personid“ würde ein eindeutiger Wert zugewiesen. Die Spalte „Vorname“ würde auf „Lars“ und die Spalte „Nachname“ auf „Monsen“ gesetzt.
Syntax für Oracle
In Oracle ist der Code etwas kniffliger.
Sie müssen ein Auto-Increment-Feld mit dem Sequenzobjekt erstellen (dieses Objekt generiert eine Zahlensequenz).
Verwenden Sie die folgende CREATE SEQENCE
Syntax:
CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10;
Der obige Code erstellt ein Sequenzobjekt namens „seq_person“, das mit 1 beginnt und um 1 erhöht wird. Außerdem werden aus Leistungsgründen bis zu 10 Werte zwischengespeichert. Die Cache-Option gibt an, wie viele Sequenzwerte für einen schnelleren Zugriff im Speicher gespeichert werden.
Um einen neuen Datensatz in die Tabelle „Personen“ einzufügen, müssen wir die Funktion nextval verwenden (diese Funktion ruft den nächsten Wert aus der Sequenz seq_person ab):
INSERT INTO Persons (Personid,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen');
Die obige SQL Anweisung würde einen neuen Datensatz in die Tabelle „Personen“ einfügen. Der Spalte „Personid“ würde die nächste Nummer aus der Sequenz „seq_person“ zugewiesen. Die Spalte „Vorname“ würde auf „Lars“ und die Spalte „Nachname“ auf „Monsen“ gesetzt.