Arquivos da categoria: Firebird

Gerar autoincremento para todas as tabelas automaticamente

Logo do firebird sistema de gerenciamento de banco de dados

Uma das reclamações das pessoas que começam a utilizar o FireBird é a falta do auto-incremento como é contrados em sistemas como SQL Server e MySQL. Ainda não vamos discutir os prós e contras de se utilizar generators(Sequences), mas criei um código para me auxiliar na tarefa de preparar o banco de dados para rotinas de replicação e que serve para solucionar este problema.

A rotina abaixo busca por tabelas no banco de dados que contenha chaves primárias de apenas um campo, caso encontre, cria o GENERATOR (SEQUENCE), e a TRIGGER correspondente para gerar o auto-incremento destas tabelas.

Recursos utilizados nestes scripts:
TRIM: retorna o texto informado no parâmetro sem os espaços a esquerda e direita.
EXECUTE STATEMENT: Execute um comando contido na string, muito útil para criação de consultas  
            dinamicamente.
RDB$RELATIONS: Tabela do sistema que contem todas as tabelas e views do banco de dados.
UPPER: Retorna o parâmetro informado em caixa alta (todas as letras maiúsculas )
CAST: Converte um valor para um determinado tipo de dados. No nosso exemplo foi convertido um valor inteiro para texto ( varchar(5) ).