Auto-increment allows a unique number to be generated automatically when a new record is inserted. This is commonly used for primary keys — ensuring each record gets a unique identifier without manual input.
SQL Auto Increment Syntax
In SQLite, you declare a column as INTEGER PRIMARY KEY AUTOINCREMENT. In our playground, AUTOINCREMENT works only with the column declared as INTEGER PRIMARY KEY.
CREATE TABLE Example ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL );
SQL Auto Increment Syntax for MySQL
CREATE TABLE Persons ( Personid INT NOT NULL AUTO_INCREMENT, LastName VARCHAR(255) NOT NULL, FirstName VARCHAR(255), Age INT, PRIMARY KEY (Personid) );
Note: This syntax does not work in SQLite —
AUTO_INCREMENT
is specific to MySQL.
SQL Auto Increment Syntax for SQL Server
CREATE TABLE Persons ( Personid INT IDENTITY(1,1) PRIMARY KEY, LastName VARCHAR(255) NOT NULL, FirstName VARCHAR(255), Age INT );
IDENTITY(1,1)
means: start at 1 and increment by 1.
Note:
IDENTITY
is not valid in SQLite.
SQL Auto Increment Syntax for Access
CREATE TABLE Persons ( Personid AUTOINCREMENT PRIMARY KEY, LastName VARCHAR(255) NOT NULL, FirstName VARCHAR(255), Age INT );
Note:
AUTOINCREMENT
is specific to Microsoft Access and not supported in SQLite.
SQL Auto Increment Syntax for Oracle
In Oracle, auto-increment is achieved using a SEQUENCE
:
CREATE SEQUENCE seq_person MINVALUE 1 START WITH 1 INCREMENT BY 1 CACHE 10;
Then use the sequence when inserting:
INSERT INTO Persons (Personid, FirstName, LastName) VALUES (seq_person.NEXTVAL, 'Lars', 'Monsen');
Note: Oracle sequences are not supported in SQLite.
SQL Auto Increment Example
This query creates a table using SQLite’s auto-increment format:
CREATE TABLE TestPatients ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL );
To insert a new patient:
INSERT INTO TestPatients (name) VALUES ('Maria Santos');
This query will insert Maria Santos and assign a unique id automatically.
You can confirm with:
SELECT * FROM TestPatients;
