Tutorial SQL

SQL INÍCIO Introdução SQL Sintaxe SQL Seleção SQL SQL Select Distinto SQL Onde SQL E, Ou, Não Ordem SQL por SQL Inserir em Valores Nulos SQL Atualização SQL Excluir SQL SQL Select Top SQL Mínimo e Máximo Contagem SQL, Média, Soma Como SQL Curingas SQL Entrada SQL SQL entre Alias ​​SQL Junções SQL SQL Inner Join SQL Left Join Associação à direita do SQL Associação completa SQL Auto-junção SQL União SQL SQL Agrupar por SQL tendo SQL existe SQL Qualquer, Todos SQL Selecionar em SQL Inserir na seleção Caso SQL Funções Nulas SQL Procedimentos armazenados SQL Comentários SQL Operadores SQL

Banco de dados SQL

SQL Criar banco de dados SQL Drop DB Banco de dados de backup SQL SQL Criar Tabela Tabela de descarte de SQL Tabela de alteração SQL Restrições SQL SQL não nulo SQL exclusivo Chave Primária SQL Chave estrangeira SQL Verificação SQL Padrão SQL Índice SQL Incremento automático de SQL Datas SQL Visualizações SQL Injeção SQL Hospedagem SQL Tipos de dados SQL

Referências SQL

Palavras-chave SQL Funções do MySQL Funções do SQL Server Funções de acesso MS Referência Rápida SQL

Exemplos SQL

Exemplos SQL Teste SQL Exercícios de SQL Certificado SQL

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_INCREMENTpalavra-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_INCREMENTsequê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 IDENTITYpalavra-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 AUTOINCREMENTpalavra-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 SEQUENCEsintaxe:

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