Create Generator no Banco de Dados

Cria um Generator de número inteiros e seqüenciais. O Generator em conjunto com Trigger e ou Stored Procedure, é usado para simular o campo auto-incremento dos Bancos Desktop´s. Serve também para evitar chaves duplicadas em campos numéricos.

O Valor inicial é Zero, mas, é atualizado toda vez que é chamado a função GEN_ID(). O Generator pode ser usado para incrementar ou decrementar valores. Para se saber o código atual do Generator você passa o valor Zero “0” para o Gen_ID().

Sintaxe :

CREATE GENERATOR “NOME_DO_GENERATOR”

Ex : Vamos simular neste exemplo, um auto numérico seqüencial da tabela de fornecedores da coluna ID.

CREATE GENERATOR COD_FORNECEDOR;

CREATE TRIGGER “COD_AUTO_FORNECEDOR” FOR “FORNECEDORES” BEFORE INSERT POSITION 0 AS

BEGIN

NEW.ID := Gen_ID(“COD_FORNECEDOR”,1);

END

Para excluir um GENERATOR, ele tem que ser excluído direto da tabela de sistema do InterBase “RDB$GENERATORS”.

Ex : DELETE FROM RDB$GENERATORS WHERE RDB$GENARATOR_NAME = ‘NOME_DO_SEU_GENERATOR’;