Subject | Re: Auto increment |
---|---|
Author | Svein Erling Tysvær |
Post date | 2004-11-05T11:01:08Z |
--- In firebird-support@yahoogroups.com, Alexander Broekhuis wrote:
problems with concurrency and making these fields a composite key should be
mentioned (although, Martijn, I do know that you consider Dutch people like
yourself and Alexander (presumably) somewhat more clever than the rest of us -
and as such cannot imagine any of you stumbling at such an easy hurdle ;o).
Set
> --- In firebird-support@yahoogroups.com, "Martijn Tonies" wrote:Hmm, looks like a newbie to me. If so, I think a warning about the potential
> > > Yes you are right, I made a mistake, I meant I think that a trigger is
> > > needed for this. The problem is I don't know how to write such a
> > > trigger. Can this be done with a trigger?
> >
> > That depends. What do you want done when inserting a new row?
> > Set the <field2> value based on <field1>?
> >
> > If so, you could try:
> >
> > BEFORE INSERT trigger:
> >
> > declare variable max_field2 integer;
> > begin
> > select max(field2) from mytable where field1 = new.field1
> > into max_field2;
> > if (max_field2 is null)
> > then max_field2 = 0; /* zero rows found */
> > new.field2 = max_field2 + 1;
> > end;
>
> Yes this looks like what I need. I will try it.
problems with concurrency and making these fields a composite key should be
mentioned (although, Martijn, I do know that you consider Dutch people like
yourself and Alexander (presumably) somewhat more clever than the rest of us -
and as such cannot imagine any of you stumbling at such an easy hurdle ;o).
Set