Uma das coisas chatas de usar o Firebird é que ele não tem o campo autoincrement (ou pelo menos não tinha até essa postagem). Isso é particularmente chato, porque o autoincrement é legal, e facilita a vida do programador.
Tá, vamos aos códigos.
Primeiro, deve-se criar um Generator. Um generator é um gerador de números que o banco de dados usa pra fazer o controle dessas coisas.
Importante: Se houver mais de um campo autoincrement no banco de dados, será necessária a criação de um generator pra cada um.
Suponhamos que queira o campo "codigo" da tabela "aluno" seja autoincrement. Primeiro cria-se o gerador "gen_cod_aluno":
CREATE GENERATOR gen_cod_aluno;
Agora deve-ser criar uma trigger para que esse gerador seja incrementado cada vez que o usuário tentar inserir algum valor no banco de dados:
CREATE TRIGGER FOR aluno
ACTIVE BEFORE INSERT POSITION 0 AS
BEGIN
NEW.codigo = GEN_ID(gen_cod_aluno,1);
END;
Traduzindo, criou-se uma trigger para a tabela aluno, que será ativada antes que um registro seja inserido, atribuindo ao campo "codigo" o valor armazenado em "gen_cod_aluno", somado a 1.
De novo, pra cada campo autoincrement, uma trigger e um generator.
Té mais o/
sexta-feira, 16 de novembro de 2007
Autoincrement no Firebird
Postado por Preco às 08:30 RT @perereco: Autoincrement no Firebird
Tags: Firebird
Assinar:
Postar comentários (Atom)
2 comentários:
Dizem por ai que usar AI é ruim =\ pq ai tu não pode se abstrair do BD
Dizem por ai que se deve ter uma variável que guarde os indices dos registros e na hora de inserí-los, deve-se fazer algo assim: INSERT INTO Alunos(id_aluno, blablabla) values (variavelindice++, bla bla bla) que ai tu pode usar qualquer banco com tua aplicação ;)
Postar um comentário