On Wed, 14 Aug 2002 Richard Huxton wrote: > > CREATE TABLE Items ( > > Id int DEFAULT NextItem() > > > CREATE FUNCTION NextItem() RETURNS INT4 > > AS 'select max(Id)+1 from Items where Id < 1000000;' > > LANGUAGE 'sql'; > > > ERROR: Relation "items" does not exist > > > > Any hint to solve this kind of chicken-egg-problem? > > Your solution is not safe anyway - you could end up with two processes trying > to insert the next value. While you are perfectly right in principle I can be sure that this can not happen in this application.
> Can I suggest two sequences: item_low_seq and item_high_seq? Set the initial > value of each to 1,000,000 and 99,000,000 (or whatever) and then use > whichever sequence is appropriate. > > In the example above you'd want something like: > id int not null default nextval('item_low_seq') In fact I want to let PostgreSQL manage only the Ids of the 'lower region' via sequences/functions whatever. The 'higher region' is imported from an external source and contains explicite Ids. But anyway for academic reasons: What means adding 'explicit typecast' of a func??? I was not able to find this term in the docs. Kind regards Andreas. ---------------------------(end of broadcast)--------------------------- TIP 4: Don't 'kill -9' the postmaster