Campo SQL AUTO INCREMENT
Campo de INCREMENTO AUTOMÁTICO
O incremento automático permite que um número único seja gerado automaticamente quando um novo registro é inserido em uma tabela.
Muitas vezes este é o campo de chave primária que gostaríamos que fosse criado automaticamente toda vez que um novo registro fosse inserido.
Sintaxe para MySQL
A seguinte instrução SQL define a coluna "Personid" como um campo de chave primária de incremento automático na tabela "Persons":
CREATE TABLE Persons
(
Personid int NOT NULL AUTO_INCREMENT,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int,
PRIMARY KEY (Personid)
);
O MySQL usa a AUTO_INCREMENT
palavra-chave para executar um recurso de incremento automático.
Por padrão, o valor inicial para AUTO_INCREMENT
é 1 e será incrementado em 1 para cada novo registro.
Para permitir que a AUTO_INCREMENT
sequência comece com outro valor, use a seguinte instrução SQL:
ALTER TABLE Persons AUTO_INCREMENT=100;
Para inserir um novo registro na tabela "Persons", NÃO precisaremos especificar um valor para a coluna "Personid" (um valor único será adicionado automaticamente):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen');
A instrução SQL acima inseriria um novo registro na tabela "Pessoas". A coluna "Personid" receberia um valor exclusivo. A coluna "FirstName" seria definida como "Lars" e a coluna "LastName" seria definida como "Monsen".
Sintaxe para SQL Server
A seguinte instrução SQL define a coluna "Personid" como um campo de chave primária de incremento automático na tabela "Persons":
CREATE TABLE Persons
(
Personid int IDENTITY(1,1) PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
O MS SQL Server usa a IDENTITY
palavra-chave para executar um recurso de incremento automático.
No exemplo acima, o valor inicial para
IDENTITY
é 1 e será incrementado em 1 para cada novo registro.
Dica: Para especificar que a coluna "Personid" deve começar no valor 10 e incrementar em 5, altere-a para IDENTITY(10,5)
.
Para inserir um novo registro na tabela "Persons", NÃO precisaremos especificar um valor para a coluna "Personid" (um valor único será adicionado automaticamente):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen');
A instrução SQL acima inseriria um novo registro na tabela "Pessoas". A coluna "Personid" receberia um valor exclusivo. A coluna "FirstName" seria definida como "Lars" e a coluna "LastName" seria definida como "Monsen".
Sintaxe para acesso
A seguinte instrução SQL define a coluna "Personid" como um campo de chave primária de incremento automático na tabela "Persons":
CREATE TABLE Persons
(
Personid AUTOINCREMENT PRIMARY KEY,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Age int
);
O MS Access usa a AUTOINCREMENT
palavra-chave para executar um recurso de incremento automático.
Por padrão, o valor inicial para AUTOINCREMENT
é 1 e será incrementado em 1 para cada novo registro.
Dica: Para especificar que a coluna "Personid" deve começar no valor 10 e incrementar em 5, altere o incremento automático para
AUTOINCREMENT(10,5)
.
Para inserir um novo registro na tabela "Persons", NÃO precisaremos especificar um valor para a coluna "Personid" (um valor único será adicionado automaticamente):
INSERT INTO Persons (FirstName,LastName)
VALUES ('Lars','Monsen');
A instrução SQL acima inseriria um novo registro na tabela "Pessoas". A coluna "Personid" receberia um valor exclusivo. A coluna "FirstName" seria definida como "Lars" e a coluna "LastName" seria definida como "Monsen".
Sintaxe para Oracle
No Oracle o código é um pouco mais complicado.
Você terá que criar um campo de incremento automático com o objeto de sequência (este objeto gera uma sequência numérica).
Use a seguinte CREATE SEQUENCE
sintaxe:
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 com 1 e será incrementado em 1. Ele também armazenará em cache até 10 valores para desempenho. A opção de cache especifica quantos valores de sequência serão armazenados na memória para acesso mais rápido.
Para inserir um novo registro na tabela "Persons", teremos que usar a função nextval (esta função recupera o próximo valor da sequência seq_person):
INSERT INTO Persons (Personid,FirstName,LastName)
VALUES (seq_person.nextval,'Lars','Monsen');
A instrução SQL acima inseriria um novo registro na tabela "Pessoas". A coluna "Personid" receberia o próximo número da sequência seq_person. A coluna "FirstName" seria definida como "Lars" e a coluna "LastName" seria definida como "Monsen".