Geradores de Chaves no Interbase (Generators)

Um gerador (generator) é um objeto do SGBD Interbase que permite "gerar"  números sequenciais unívocos com o objetivo principal de inseri-los automaticamente (via um trigger) na coluna correspondente à Chave Primária de uma tabela. Os números de um gerador possuem 64 bits e  são gerados chamando a função do sistema gen_id(nome_gerador, incremento), onde incremento é o valor a ser somado ao valor corrente do gerador. O valor inicial de um gerador (default = 1) pode ser dado através do comando set generator nome_gerador to valor. (Este comando na verdade "reseta"  o gerador, por isto só deveria ser emitido uma vez, antes de qualquer utilização do gerador, caso contrário pode-se criar valores de chaves duplicadas!). Uma coluna que vai receber como valor um número de um gerador deve ser definida dentro do comando create table com o tipo integer (internamente o tipo é  ISC_INT64, que define um inteiro de 64 bits)
Vários geradores podem ser criados numa Base de Dados.
Os passos seguintes ilustram a criação de um gerador usando isql e sua utilização num trigger para criação da Chave Primária da tabela customer da base de dados employee.gdb: Observe que é fundamental que o trigger seja definido com a opção before insert  (veja  notas de aula  sobre a semântica de triggers no Interbase). Observe também que os comandos insert  da aplicação, sobre a tabela customer,   não devem especificar (por razões óbvias) o valor da Chave Primária cust_no.
Por razões desconhecidas não existe o comando drop generator no Interbase. Para remover um gerador V. deve primeiro remover ou alterar o trigger que o usa e depois remover o gerador  do dicionário do Interbase via comando:

delete from rdb$generators where rdb$generators_name = 'NOME_GERADOR';