[firebase-br] Stored procedure que retorna o ID após inserir
Douglas Tosi
douglasht em gmail.com
Ter Fev 10 10:05:17 -03 2009
2009/2/10 Marcelo Guilherme Tamanini <marcelo_tamanini em hotmail.com>:
> E como ficaria o select para pegar o novo ID inserido, logo após o insert:
Você precisa de uma variável de saída:
create procedure myProc
returns (identity integer)
...
Depois você usa o "insert returning".
Assumindo que o nome do campo da chave primária é "id" e o parâmetro
de saída é "identity":
insert into tb_aparelho(campo) values (valor) returning id into :identity
> E caso ocorra algum erro, como não conseguir inserir, pelo fato de já existir um mesmo registro, colocaria mais um BEGIN e END, logo após o select acima?
> Ficando:
> BEGIN
> WHEN SQLCODE -830 DO
> EXCEPTION cadastro_existente;
> END
> SUSPEND;
> END
Não lembro de cabeça se o código para violação de chave primária é
-830. Mas a sintaxe parece correta.
hth,
--
Douglas Tosi
www.sinatica.com
Mais detalhes sobre a lista de discussão lista