SQL AUTO INCREMENT Field

Auto-increment genereert een unieke nummer wanneer een nieuw record in de tabel wordt ingevoegd.

AUTO INCREMENT veld

We hopen meestal dat de waarde van het primaire sleutelveld automatisch wordt gegenereerd bij het invoegen van een nieuw record.

We kunnen een auto-increment veld in de tabel aanmaken.

Syntaxis voor MySQL

De volgende SQL-statement definieert de kolom "P_Id" in de tabel "Persons" als een auto-increment primaire sleutel:

CREATE TABLE Persons
(
P_Id int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (P_Id)
)

MySQL gebruikt het AUTO_INCREMENT-sleutelwoord om de taak van auto-increment uit te voeren.

Standaard is de startwaarde van AUTO_INCREMENT 1, en elke nieuwe record wordt met 1 verhoogd.

Om de AUTO_INCREMENT-serie te beginnen met een andere waarde, gebruik dan de volgende SQL-syntaxis:

ALTER TABLE Persons AUTO_INCREMENT=100

Om een nieuwe record in de tabel "Persons" in te voegen, hoeven we geen waarde voor de kolom "P_Id" te specificeren (een unieke waarde wordt automatisch toegevoegd):

INSERT INTO Persons (FirstName,LastName)
VALUES ('Bill','Gates')

De bovenstaande SQL-stelling zal een nieuw record invoegen in de tabel "Persons". "P_Id" zal een unieke waarde krijgen. "FirstName" zal worden ingesteld op "Bill", de kolom "LastName" zal worden ingesteld op "Gates".

Syntaxis voor SQL Server

De volgende SQL-statement definieert de kolom "P_Id" in de tabel "Persons" als een auto-increment primaire sleutel:

CREATE TABLE Persons
(
P_Id int PRIMARY KEY IDENTITY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

MS SQL gebruikt het IDENTITY-sleutelwoord om de taak van auto-increment uit te voeren.

Standaard is de startwaarde van IDENTITY 1, en elke nieuwe record wordt met 1 verhoogd.

Om de kolom "P_Id" te specificeren om te beginnen bij 20 en met sprongen van 10 te stijgen, wijzig identity in IDENTITY(20,10):

Om een nieuwe record in de tabel "Persons" in te voegen, hoeven we geen waarde voor de kolom "P_Id" te specificeren (een unieke waarde wordt automatisch toegevoegd):

INSERT INTO Persons (FirstName,LastName)
VALUES ('Bill','Gates')

De bovenstaande SQL-stelling zal een nieuw record invoegen in de tabel "Persons". "P_Id" zal een unieke waarde krijgen. "FirstName" zal worden ingesteld op "Bill", de kolom "LastName" zal worden ingesteld op "Gates".

Syntaxis voor Access

De volgende SQL-statement definieert de kolom "P_Id" in de tabel "Persons" als een auto-increment primaire sleutel:

CREATE TABLE Persons
(
P_Id int PRIMARY KEY AUTOINCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

MS Access gebruikt het AUTOINCREMENT-sleutelwoord om de taak van auto-increment uit te voeren.

Standaard is de startwaarde van AUTOINCREMENT 1, en elke nieuwe record wordt met 1 verhoogd.

Om de kolom "P_Id" te specificeren om te beginnen bij 20 en met sprongen van 10 te stijgen, wijzig autoincrement in AUTOINCREMENT(20,10):

Om een nieuwe record in de tabel "Persons" in te voegen, hoeven we geen waarde voor de kolom "P_Id" te specificeren (een unieke waarde wordt automatisch toegevoegd):

INSERT INTO Persons (FirstName,LastName)
VALUES ('Bill','Gates')

De bovenstaande SQL-stelling zal een nieuw record invoegen in de tabel "Persons". "P_Id" zal een unieke waarde krijgen. "FirstName" zal worden ingesteld op "Bill", de kolom "LastName" zal worden ingesteld op "Gates".

Syntaxis voor Oracle

In Oracle is de code iets complexer.

U moet een sequence gebruiken om een auto-increment veld te creëren (het object genereert een numerieke reeks).

Gebruik de volgende CREATE SEQUENCE syntaxis:

CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10

Het bovenstaande code creëert een seq_person-reeksobject genaamd, dat begint bij 1 en met 1 stijgt. Dit object cacht 10 waarden om de prestaties te verbeteren. De CACHE-optie bepaalt hoeveel reekswaarden moeten worden opgeslagen om de toegangsnelheid te verbeteren.

Om een nieuw record in de tabel "Persons" in te voegen, moeten we de nextval-functie gebruiken (deze functie haalt de volgende waarde van de seq_person-reeks op):

INSERT INTO Persons (P_Id,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen')

De bovenstaande SQL-stelling zal een nieuw record invoegen in de tabel "Persons". De waarden van "P_Id" worden toegewezen aan het volgende getal van de seq_person-reeks. "FirstName" zal worden ingesteld op "Bill", de kolom "LastName" zal worden ingesteld op "Gates".