Fórum Trigger de Auto-Incremento sem disperdiçar número #399197
14/04/2011
0
(
CLIE_CODIGO INTEGER NOT NULL,
CLIE_NOME VARCHAR(40) NOT NULL, CONSTRAINT PKCLIENTES PRIMARY KEY(CLIE_CODIGO)
); Tentei fazer uma trigger de auto incremento, sem disperdiçar números, ou seja, pegar o ultimo código e mais um (+ 1). Para isso fiz um subselect dentro da trigger, mas da erro na hora de rodar a trigger, em compensação tentei rodar o subselect sózinho, e deu certo, só que junto com a trigger ele da erro, estou achando que é algum problema na sintaxe da trigger, que segue a baixo!! create trigger "clientes_bi" for clientes
active before insert position 0
as
begin
if(new.clie_codigo is null) then
new.clie_codigo = (select max(clientes.clie_codigo) from clientes) + 1;
end Há, mais um problema também, como faço para solucionar o problema da primeira inserção, que quando não tem nenhum registro na tabela Sou meio novato em banco de dados ainda, alguém poderia me ajudar, desde já agradeço a todos!! Abraços!!
Daniel Loro
Curtir tópico
+ 0Posts
14/04/2011
Daniel Loro
active before insert position 0
as
begin
if(new.clie_codigo is null) then
new.clie_codigo = (select max(clientes.clie_codigo) from clientes) + 1;
end Aguardo ajudas!!
Gostei + 0
14/04/2011
Emerson Nascimento
de qualquer forma, respondo sua pergunta quanto à instrução:
create trigger clientes_bi for clientes
active before insert position 0
as
begin
if(new.clie_codigo is null) then
new.clie_codigo = (select coalesce(max(clie_codigo),0)+1 from clientes);
end
Gostei + 0
17/04/2011
Thiago Santana
if (New.Codigo is null) then
new.Codigo = Gen_id(nomeGenerators,1);
Gostei + 0
06/05/2011
Rafael Mattos
active before insert position 0
as
begin
if(new.clie_codigo is null) then
new.clie_codigo = (select max(clientes.clie_codigo) from clientes) + 1;
end Aguardo ajudas!!
mas qual é o erro que apresenta?
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)