tutoriais mais recente desenvolvimento web
 

SQL Auto incremento campo


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" .