Você está aqui: Firebird ::: Dicas & Truques ::: Comandos DDL (Data Definition Language - Linguagem de Definição de Dados)

Como criar uma tabela contendo um campo auto-incremento no Firebird

Quantidade de visualizações: 20297 vezes
Em algumas situações precisamos criar tabelas que contenham campos auto-incremento. Estes campos são geralmente do tipo inteiro, chave primária e usados para identificar, unicamente, um produto, cliente, pedido, etc.

O Firebird, até sua versão 2.5, não fornece uma forma automática de se criar campos auto-incremento. Para conseguir realizar esta tarefa precisamos usar um gerador GENERATOR ou SEQUENCE. Nesta dica eu mostro passo-a-passo como isso pode ser feito.

Vamos começar da forma mais complicada, ou seja, sem usar nenhuma ferramenta gráfica, apenas o SQL Editor do IBExpert. Para acessá-lo vá em Tools -> SQL Editor. Siga atentamente os passos abaixo:

a) Comece criando a seguinte tabela. Basta copiar o comando DDL CREATE TABLE abaixo, colar no SQL Editor e pressionar F9:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

/* criação da tabela CLIENTES */
CREATE TABLE CLIENTES(
  ID INTEGER NOT NULL,
......


b) O passo seguinte é definir o campo ID como chave primária. Isso pode ser feito com o seguinte comando DDL:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

ALTER TABLE CLIENTES ADD CONSTRAINT PK_CLIENTES PRIMARY KEY (ID);
......


c) Agora que já temos a tabela, chegou a hora de criar o GENERATOR/SEQUENCE. Cole o código a seguir na janela do SQL Editor e pressione F9 (execute uma linha de cada vez):

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

CREATE SEQUENCE GEN_CLIENTES_ID;
ALTER SEQUENCE GEN_CLIENTES_ID RESTART WITH 0;
......


Veja que aqui eu estou usando a nova sintáxe de criação de SEQUENCE do Firebird 2.5. Se você estiver usando uma versão mais antiga, a sintáxe correta é (novamente execute uma linha de cada vez):

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

CREATE GENERATOR GEN_CLIENTES_ID;
......


d) Estamos quase finalizando. Só precisamos criar um trigger que será disparado antes da inserção de novos registros (BEFORE INSERT). Veja o código:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

CREATE TRIGGER TRIGGER_CLIENTES_BI FOR CLIENTES
ACTIVE BEFORE INSERT POSITION 0
AS
......


Este trigger faz com que o valor do campo ID seja sempre auto-incremento, começando em 1. Hora do teste final! Insira alguns registros na tabela usando um comando DML INSERT INTO parecido com o que temos abaixo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

INSERT INTO CLIENTES(NOME, EMAIL) VALUES('OSMAR J. SILVA', 
......


Note que o campo ID não é mencionado na query. Isso faz com que seu valor seja enviado como NULL e o trigger se encarregue de gerar o novo valor auto-incremento e atribuí-lo a este campo.

Link para compartilhar na Internet ou com seus amigos:

Veja mais Dicas e truques de Firebird

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 27 usuários muito felizes estudando em nosso site.