Auto-incremento permite que um número único para ser gerado quando um novo registro é inserido em uma tabela.
AUTO INCREMENT um campo
Muitas vezes, gostaríamos que o valor do campo de chave primária a ser criado automaticamente a cada vez que um novo registro é inserido.
Nós gostaríamos de criar um campo de incremento automático em uma tabela.
Sintaxe para MySQL
A seguinte instrução SQL define o "ID" da coluna para ser um campo de chave primária auto-incremento no "Persons" tabela:
CREATE TABLE Persons
(
ID int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
PRIMARY KEY (ID)
)
MySQL usa a palavra-chave AUTO_INCREMENT para executar um recurso de auto-incremento.
Por padrão, o valor inicial AUTO_INCREMENT é 1, e ele será incrementado em 1 para cada novo registro.
Para permitir que a sequência de AUTO_INCREMENT começar com outro valor, use a seguinte instrução SQL:
ALTER TABLE Persons AUTO_INCREMENT=100
Para inserir um novo registro para o "Persons" da tabela, não terá que especificar um valor para o "ID" coluna (um valor único será adicionado automaticamente):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen')
A instrução SQL acima deve inserir um novo registro para o "Persons" mesa. O "ID" coluna seria atribuído um valor único. O "FirstName" coluna seria definida como "Lars" ea "LastName" coluna seria definida como "Monsen" .
Sintaxe para SQL Server
A seguinte instrução SQL define o "ID" da coluna para ser um campo de chave primária auto-incremento no "Persons" tabela:
CREATE TABLE Persons
(
ID int IDENTITY(1,1) PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255)
)
O MS SQL Server usa a palavra-chave IDENTIDADE para executar um recurso de auto-incremento.
No exemplo acima, o valor de partida para a identidade é 1, e ele será incrementado em 1 para cada novo registro.
Dica: Para especificar que o "ID" coluna deve começar no valor de 10 e incremento de 5, alterá-lo para IDENTIDADE (10,5).
Para inserir um novo registro para o "Persons" da tabela, não terá que especificar um valor para o "ID" coluna (um valor único será adicionado automaticamente):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen')
A instrução SQL acima deve inserir um novo registro para o "Persons" mesa. O "ID" coluna seria atribuído um valor único. O "FirstName" coluna seria definida como "Lars" ea "LastName" coluna seria definida como "Monsen" .
Sintaxe para acesso
A seguinte instrução SQL define o "ID" da coluna para ser um campo de chave primária auto-incremento no "Persons" tabela:
CREATE TABLE Persons
(
ID Integer 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 um recurso de auto-incremento.
Por padrão, o valor inicial para AUTOINCREMENT é 1, e ele será incrementado em 1 para cada novo registro.
Dica: Para especificar que o "ID" coluna deve começar no valor de 10 e incremento de 5, altere o autoincrement para AUTOINCREMENT (10,5).
Para inserir um novo registro para o "Persons" da tabela, não terá que especificar um valor para o "ID" coluna (um valor único será adicionado automaticamente):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen')
A instrução SQL acima deve inserir um novo registro para o "Persons" mesa. O "P_Id" coluna seria atribuído um valor único. O "FirstName" coluna seria definida como "Lars" ea "LastName" coluna seria definida como "Monsen" .
Sintaxe para Oracle
No Oracle, o código é um pouco mais complicado.
Você terá de criar um campo de auto-incremento com o objeto de seqüência (este objeto gera uma sequência de números).
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 seqüência chamado seq_person, que começa com 1 e será incrementado em 1. Ele também irá armazenar em cache até 10 valores para o desempenho. A opção de cache especifica quantos valores da sequência serão armazenados na memória para acesso mais rápido.
Para inserir um novo registro para o "Persons" da tabela, teremos de usar a função nextval (esta função obtém o próximo valor da seqüência seq_person):
INSERT INTO Persons (ID,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen')
A instrução SQL acima deve inserir um novo registro para o "Persons" mesa. O "ID" coluna seria atribuído o próximo número da sequência de seq_person. O "FirstName" coluna seria definida como "Lars" ea "LastName" coluna seria definida como "Monsen" .