SQL AUTO INCREMENT Field : SQL AUTO INCREMENT Field allows a unique number to be generated automatically when a new record is inserted into a table.
AUTO INCREMENT Field
- Auto-increment allows a unique number to be generated automatically when a new record is inserted into a table.
- Often this is the primary key field that we would like to be created automatically every time a new record is inserted.
Syntax for MySQL
- The following SQL statement defines the “ID” column to be an auto-increment primary key field in the “Persons” table:
CREATE TABLE Persons (
ID int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
PRIMARY KEY (ID)
);
- MySQL uses the AUTO_INCREMENT keyword to perform an auto-increment feature.
- By default, the starting value for AUTO_INCREMENT is 1, and it will increment by 1 for each new record.
- To let the AUTO_INCREMENT sequence start with another value, use the following SQL statement:
ALTER TABLE Persons AUTO_INCREMENT=100;
- To insert a new record into the “Persons” table, we will NOT have to specify a value for the “ID” column (a unique value will be added automatically):
INSERT INTO Persons (FirstName,LastName)
VALUES (‘Lars’,’Monsen’);
- The SQL statement above would insert a new record into the “Persons” table. The “ID” column would be assigned a unique value. The “FirstName” column would be set to “Lars” and the “LastName” column would be set to “Monsen”.
Syntax for SQL Server
- The following SQL statement defines the “ID” column to be an auto-increment primary key field in the “Persons” table:
CREATE TABLE Persons (
ID int IDENTITY(1,1) PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
- The MS SQL Server uses the IDENTITY keyword to perform an auto-increment feature.
- In the example above, the starting value for IDENTITY is 1, and it will increment by 1 for each new record.
Tip:
To specify that the “ID” column should start at value 10 and increment by 5, change it to IDENTITY(10,5).
- To insert a new record into the “Persons” table, we will NOT have to specify a value for the “ID” column (a unique value will be added automatically):
INSERT INTO Persons (FirstName,LastName)
VALUES (‘Lars’,’Monsen’);
- The SQL statement above would insert a new record into the “Persons” table. The “ID” column would be assigned a unique value. The “FirstName” column would be set to “Lars” and the “LastName” column would be set to “Monsen”.
Syntax for Access
- The following SQL statement defines the “ID” column to be an auto-increment primary key field in the “Persons” table:
CREATE TABLE Persons (
ID Integer PRIMARY KEY AUTOINCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
- The MS Access uses the AUTOINCREMENT keyword to perform an auto-increment feature.
- By default, the starting value for AUTOINCREMENT is 1, and it will increment by 1 for each new record.
Tip:
To specify that the “ID” column should start at value 10 and increment by 5, change the autoincrement to AUTOINCREMENT(10,5).
- To insert a new record into the “Persons” table, we will NOT have to specify a value for the “ID” column (a unique value will be added automatically):
INSERT INTO Persons (FirstName,LastName)
VALUES (‘Lars’,’Monsen’);
- The SQL statement above would insert a new record into the “Persons” table. The “P_Id” column would be assigned a unique value. The “FirstName” column would be set to “Lars” and the “LastName” column would be set to “Monsen”.
Syntax for Oracle
- In Oracle the code is a little bit more tricky.
- You will have to create an auto-increment field with the sequence object (this object generates a number sequence).
- Use the following CREATE SEQUENCE syntax:
CREATE SEQUENCE seq_person
MINVALUE 1
START WITH 1
INCREMENT BY 1
CACHE 10;
- The code above creates a sequence object called seq_person, that starts with 1 and will increment by 1.
- It will also cache up to 10 values for performance.
- The cache option specifies how many sequence values will be stored in memory for faster access.
- To insert a new record into the “Persons” table, we will have to use the nextval function (this function retrieves the next value from seq_person sequence):
INSERT INTO Persons (ID,FirstName,LastName)
VALUES (seq_person.nextval,’Lars’,’Monsen’);
- The SQL statement above would insert a new record into the “Persons” table.
- The “ID” column would be assigned the next number from the seq_person sequence.
- The “FirstName” column would be set to “Lars” and the “LastName” column would be set to “Monsen”.