Subject Re: Getting ID from generator
Author Adam
--- In firebird-support@yahoogroups.com, Milan Babuskov <albis@e...>
wrote:
>
> Adam wrote:
> >>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...
> >>begin
> >> if (new.microarrayid is null) then
> >> new.microarrayid = gen_id(microarray_id_gen, 1);
> >> else
> >> check if new.microarrayid is bigger than
> >> the generator value
> >> and move the generator up to it
> >>
> >>Well, not so simple, but effective.
> >
> >
> > Not always a good practice though.
> >
> > A common use for this technique is if you are maintaining a master
> > detail relationship in a clientdatset or equivalent. You can fire off
> > the appropriate queries as required to pull in the true PK values to
> > be used.
> >
> > Using your trigger, the relationship would be broken upon insert.
>
> No, it won't. I don't touch the inserted value, I use the one supplied
> and move generator beyond it.

Helps if I pay a bit more attention ;)
I thought you were advancing my ID if your generator was higher. Your
idea is a good one.

Adam