SQL AUTO INCREMENT felt

Auto-increment genererer en unik nummer, når et nyt record indsættes i tabellen.

AUTO INCREMENT felt

Vi ønsker normalt at oprette værdien for hovednøglefeltet automatisk ved hver indsatning af et nyt record.

Vi kan oprette en auto-increment-felt i tabellen.

Syntax til brug i MySQL

Følgende SQL-sætning definerer kolonnen "P_Id" i tabellen "Persons" som en auto-increment primærnøgle:

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 bruger AUTO_INCREMENT-nøgleordet til at udføre auto-increment-opgaver.

Standardværdien for AUTO_INCREMENT er 1, og hver nye record øges med 1.

For at få AUTO_INCREMENT-sekvensen til at starte med en anden værdi, skal du bruge følgende SQL-sætning:

ALTER TABLE Persons AUTO_INCREMENT=100

For at indsætte et nyt record i tabellen "Persons", er det ikke nødvendigt at specificere en værdi for kolonnen "P_Id" (en unik værdi vil automatisk blive tilføjet):

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

Den ovenstående SQL-sætning vil indsætte et nyt record i "Persons" tabellen. "P_Id" vil tildeles en unik værdi. "FirstName" vil blive sat til "Bill", og kolonnen "LastName" vil blive sat til "Gates".

Syntax til brug i SQL Server

Følgende SQL-sætning definerer kolonnen "P_Id" i tabellen "Persons" som en auto-increment primærnøgle:

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 bruger IDENTITY-nøgleordet til at udføre auto-increment-opgaver.

Standardværdien for IDENTITY er 1, og hver nye record øges med 1.

For at specificere, at kolonnen "P_Id" skal starte med 20 og øge med 10, skal du ændre identity til IDENTITY(20,10):

For at indsætte et nyt record i tabellen "Persons", er det ikke nødvendigt at specificere en værdi for kolonnen "P_Id" (en unik værdi vil automatisk blive tilføjet):

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

Den ovenstående SQL-sætning vil indsætte et nyt record i "Persons" tabellen. "P_Id" vil tildeles en unik værdi. "FirstName" vil blive sat til "Bill", og kolonnen "LastName" vil blive sat til "Gates".

Syntax til brug i Access

Følgende SQL-sætning definerer kolonnen "P_Id" i tabellen "Persons" som en auto-increment primærnøgle:

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 bruger AUTOINCREMENT-nøgleordet til at udføre auto-increment-opgaver.

Standardværdien for AUTOINCREMENT er 1, og hver nye record øges med 1.

For at specificere, at kolonnen "P_Id" skal starte med 20 og øge med 10, skal du ændre autoincrement til AUTOINCREMENT(20,10):

For at indsætte et nyt record i tabellen "Persons", er det ikke nødvendigt at specificere en værdi for kolonnen "P_Id" (en unik værdi vil automatisk blive tilføjet):

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

Den ovenstående SQL-sætning vil indsætte et nyt record i "Persons" tabellen. "P_Id" vil tildeles en unik værdi. "FirstName" vil blive sat til "Bill", og kolonnen "LastName" vil blive sat til "Gates".

Syntaksen til brug i Oracle

I Oracle er koden lidt mere kompleks.

Du skal oprette en sequence for at oprette auto-increment felter (dette objekt genererer et numerisk sekvens).

Brug følgende CREATE SEQUENCE syntaks:

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

Den ovenstående kode opretter en sekvensobjekt kaldet seq_person, der starter med 1 og øges med 1. Objektet cacher 10 værdier for at forbedre ydeevnen. CACHE optionen bestemmer, hvor mange sekvensværdier der skal gemmes for at forbedre adgangshastigheden.

For at indsætte et nyt record i "Persons" tabellen, skal vi bruge nextval funktionen (denne funktion henter den næste værdi fra seq_person sekvensen):

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

Den ovenstående SQL-sætning vil indsætte et nyt record i "Persons" tabellen. Tildeles til "P_Id" er den næste nummer fra seq_person sekvensen. "FirstName" vil blive sat til "Bill", og kolonnen "LastName" vil blive sat til "Gates".