Subject Re: [firebird-support] Re: Getting ID from generator
Author Milan Babuskov
Adam wrote:
> Firstly, change your trigger to this.
> set term !! ;
> create trigger create_microarray_id for microarray_main
> before insert position 0
> as begin
> if (new.microarrayid is null) then
> begin
> new.microarrayid = gen_id(microarray_id_gen, 1);
> end
> end !!
> set term ; !!

Although this is a common pratice, I've run into issues many times. If
you do provide the value, it might clash with autogenerated one in the
future. So I mostly rewrite the triggers like this:

create trigger...
if (new.microarrayid is null) then
new.microarrayid = gen_id(microarray_id_gen, 1);
check if new.microarrayid is bigger than
the generator value
and move the generator up to it

Well, not so simple, but effective.

Milan Babuskov