SQL AUTO INCREMENT-fält
Auto-increment skapar en unik nummer när ett nytt register läggs till i tabellen.
AUTO INCREMENT-fält
Vi vill vanligtvis att ett huvudnyckelsvärde skapas automatiskt varje gång vi lägger till ett nytt register.
Vi kan skapa en auto-increment-fält i tabellen.
Syntax för MySQL
Följande SQL-sats definierar kolonnen "P_Id" i tabellen "Persons" som en auto-increment primärnyckel:
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 använder nyckelordet AUTO_INCREMENT för att utföra auto-increment-uppgifter.
Som standard är startvärdet för AUTO_INCREMENT 1, och varje nytt register ökar med 1.
För att få AUTO_INCREMENT-sekvensen att börja med ett annat värde, använd följande SQL-sats:
ALTER TABLE Persons AUTO_INCREMENT=100
För att lägga till ett nytt register i tabellen "Persons" behöver vi inte ange ett värde för kolonnen "P_Id" (ett unikt värde läggs till automatiskt):
INSERT INTO Persons (FirstName,LastName) VALUES ('Bill','Gates')
Ovanstående SQL-sats kommer att lägga till ett nytt post i tabellen "Persons". Värdet för "P_Id" kommer att tilldelas ett unikt värde. "FirstName" kommer att sättas till "Bill", och kolumnen "LastName" kommer att sättas till "Gates".
Syntax för SQL Server
Följande SQL-sats definierar kolonnen "P_Id" i tabellen "Persons" som en auto-increment primärnyckel:
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 använder nyckelordet IDENTITY för att utföra auto-increment-uppgifter.
Som standard är startvärdet för IDENTITY 1, och varje nytt register ökar med 1.
För att specificera att kolonnen "P_Id" börjar på 20 och ökar med 10, ändra identity till IDENTITY(20,10):
För att lägga till ett nytt register i tabellen "Persons" behöver vi inte ange ett värde för kolonnen "P_Id" (ett unikt värde läggs till automatiskt):
INSERT INTO Persons (FirstName,LastName) VALUES ('Bill','Gates')
Ovanstående SQL-sats kommer att lägga till ett nytt post i tabellen "Persons". Värdet för "P_Id" kommer att tilldelas ett unikt värde. "FirstName" kommer att sättas till "Bill", och kolumnen "LastName" kommer att sättas till "Gates".
Syntax för Access
Följande SQL-sats definierar kolonnen "P_Id" i tabellen "Persons" som en auto-increment primärnyckel:
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 använder nyckelordet AUTOINCREMENT för att utföra auto-increment-uppgifter.
Som standard är startvärdet för AUTOINCREMENT 1, och varje nytt register ökar med 1.
För att specificera att kolonnen "P_Id" börjar på 20 och ökar med 10, ändra autoincrement till AUTOINCREMENT(20,10):
För att lägga till ett nytt register i tabellen "Persons" behöver vi inte ange ett värde för kolonnen "P_Id" (ett unikt värde läggs till automatiskt):
INSERT INTO Persons (FirstName,LastName) VALUES ('Bill','Gates')
Ovanstående SQL-sats kommer att lägga till ett nytt post i tabellen "Persons". Värdet för "P_Id" kommer att tilldelas ett unikt värde. "FirstName" kommer att sättas till "Bill", och kolumnen "LastName" kommer att sättas till "Gates".
Syntaks för Oracle
I Oracle är koden något mer komplex.
Du måste använda sequence för att skapa auto-increment-fält (denna objekt genererar en numerisk sekvens).
Använd följande CREATE SEQUENCE-syntaks:
CREATE SEQUENCE seq_person MINVALUE 1 START WITH 1 INCREMENT BY 1 CACHE 10
Ovanstående kod skapar en sekvensobjekt med namnet seq_person, som startar vid 1 och ökar med 1. Objektet cachar 10 värden för att förbättra prestandan. CACHE-alternativet anger hur många sekvensvärden som ska lagras för att förbättra tillgångshastigheten.
För att lägga till ett nytt post i tabellen "Persons", måste vi använda nextval-funktionen (denna funktion hämtar nästa värde från seq_person-sekvensen):
INSERT INTO Persons (P_Id,FirstName,LastName) VALUES (seq_person.nextval,'Lars','Monsen')
Ovanstående SQL-sats kommer att lägga till ett nytt post i tabellen "Persons". Värdet för "P_Id" är nästa nummer från seq_person-sekvensen. "FirstName" kommer att sättas till "Bill", och kolumnen "LastName" kommer att sättas till "Gates".