Re: nextval on insert by arbitrary sequence

From: Dado Feigenblatt <dado(at)wildbrain(dot)com>
To: josh(at)agliodbs(dot)com
Cc: pgsql-sql(at)postgresql(dot)org
Subject: Re: nextval on insert by arbitrary sequence
Date: 2001-07-20 17:10:01
Message-ID: 3B5865E9.30708@wildbrain.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-sql

Josh Berkus wrote:

>Dado,
>
>>I'm not sure if I worded the subject right, but my problem is this:
>>
>>I have a few entries in one table. Each row is the parent of many
>>entries in a second table.
>>In the second table I have a lot of entries referencing the entries
>>on
>>the first table.
>>So far so good. Basic foreign key thing.
>>The entries on the second table need to be numbered, but instead of a
>>single sequence for all rows,
>>I need a sequence per group of rows, according to their parent
>>record.
>>
>
>You *can* do this through PL/pgSQL triggers. *however*, there's a
>couple of problems with that idea:
>1. It would be fairly elaborate for a trigger (i.e. lots of debugging).
>
Although I haven't written any PL/pgSQL function, I think that wouldn't
be the hard part here.
I don't know how to integrate that with a single INSERT SQL statement.
I mean, I always want to use unix backticks ( `sql query`). I wish that
was an option.
I haven't understood yet the SQL multiple query or subquery thing.

>2. It would only work for ON INSERT. Deleting one row in the middle
>could not reasonably be made to make all the rest re-number.
>
That's not an issue. Rows won't be deleted and once a number is
assigned, it's written in stone.
Well, if a row was inserted by mistake, I could lock the sequence and,
if no other number was picked,
reset the counter and throw the bad row away, but that is unlikely to be
necessary.

>3. None of this makes sense if you intend to re-arrange the rows
>according to some external criteria.
>
Not sure of what you mean here. Reordering?

>If it were me, I'd do it through interface (or better) middleware code,
>disabling the user's ability to insert or delete rows directly and
>forcing them to push inserts and deletes through some kind of function,
>whether PL/pgSQL or Java-ORB middleware or whatever.
>
I might do that if implementation on the sever turns out to be a drag.
But I'd like to avoid that as much as possible.
I wan't to keep the clients clean so it's easier for people here to hack
them.
On the other hand, the more obscure the code is, the safer my position
here :)

--
Dado Feigenblatt Wild Brain, Inc.
Technical Director (415) 553-8000 x???
dado(at)wildbrain(dot)com San Francisco, CA.

In response to

Responses

Browse pgsql-sql by date

  From Date Subject
Next Message Dado Feigenblatt 2001-07-20 17:13:04 Re: nextval on insert by arbitrary sequence
Previous Message Tom Lane 2001-07-20 17:05:16 Re: Query optimizing - paradox behave