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".