Campo AUTO INCREMENT SQL

O auto-increment gera um número único quando um novo registro é inserido na tabela.

Campo AUTO INCREMENT

Normalmente, esperamos que o valor do campo chave primária seja criado automaticamente toda vez que inserirmos um novo registro.

Podemos criar um campo auto-incremento na tabela.

Sintaxe para MySQL

A seguinte declaração SQL define a coluna "P_Id" na tabela "Persons" como chave primária auto-incremento:

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)
)

O MySQL usa a palavra-chave AUTO_INCREMENT para executar a tarefa de auto-incremento.

Por padrão, o valor inicial de AUTO_INCREMENT é 1, aumentando 1 para cada novo registro.

Para que a sequência AUTO_INCREMENT comece em outro valor, use a seguinte sintaxe SQL:

ALTER TABLE Persons AUTO_INCREMENT=100

Para inserir um novo registro na tabela "Persons", não precisamos especificar um valor para a coluna "P_Id" (um valor único será adicionado automaticamente):

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

A seguinte declaração SQL inserirá um novo registro na tabela "Persons". "P_Id" será atribuído um valor único. "FirstName" será configurado como "Bill", a coluna "LastName" será configurada como "Gates".

Sintaxe para SQL Server

A seguinte declaração SQL define a coluna "P_Id" na tabela "Persons" como chave primária auto-incremento:

CREATE TABLE Persons
(
P_Id int PRIMARY KEY IDENTITY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

O MS SQL usa a palavra-chave IDENTITY para executar a tarefa de auto-incremento.

Por padrão, o valor inicial de IDENTITY é 1, aumentando 1 para cada novo registro.

Para definir que a coluna "P_Id" comece em 20 e aumente em 10, mude identity para IDENTITY(20,10):

Para inserir um novo registro na tabela "Persons", não precisamos especificar um valor para a coluna "P_Id" (um valor único será adicionado automaticamente):

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

A seguinte declaração SQL inserirá um novo registro na tabela "Persons". "P_Id" será atribuído um valor único. "FirstName" será configurado como "Bill", a coluna "LastName" será configurada como "Gates".

Sintaxe para Access

A seguinte declaração SQL define a coluna "P_Id" na tabela "Persons" como chave primária auto-incremento:

CREATE TABLE Persons
(
P_Id int PRIMARY KEY AUTOINCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)

O MS Access usa a palavra-chave AUTOINCREMENT para executar a tarefa de auto-incremento.

Por padrão, o valor inicial de AUTOINCREMENT é 1, aumentando 1 para cada novo registro.

Para definir que a coluna "P_Id" comece em 20 e aumente em 10, mude autoincrement para AUTOINCREMENT(20,10):

Para inserir um novo registro na tabela "Persons", não precisamos especificar um valor para a coluna "P_Id" (um valor único será adicionado automaticamente):

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

A seguinte declaração SQL inserirá um novo registro na tabela "Persons". "P_Id" será atribuído um valor único. "FirstName" será configurado como "Bill", a coluna "LastName" será configurada como "Gates".

Sintaxe para o Oracle

No Oracle, o código é um pouco mais complexo.

Você deve criar um campo auto-increment (o objeto gera uma sequência de números) através da sequência.

Use a seguinte sintaxe CREATE SEQUENCE:

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

O código acima cria um objeto de sequência chamado seq_person, que começa em 1 e aumenta em 1. O objeto armazena 10 valores para melhorar o desempenho. A opção CACHE determina quantos valores da sequência devem ser armazenados para melhorar a velocidade de acesso.

Para inserir um novo registro na tabela "Persons", devemos usar a função nextval (esta função pega o próximo valor da sequência seq_person):

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

A seguinte declaração SQL inserirá um novo registro na tabela "Persons". O valor atribuído a "P_Id" é o próximo número da sequência seq_person. "FirstName" será configurado como "Bill", a coluna "LastName" será configurada como "Gates".