pseudo-serial values in dual primary key? - Mailing list pgsql-general

From Benjamin Smith
Subject pseudo-serial values in dual primary key?
Date
Msg-id 200503190143.07508.lists@benjamindsmith.com
Whole thread Raw
Responses Re: pseudo-serial values in dual primary key?  (Greg Stark <gsstark@mit.edu>)
Re: pseudo-serial values in dual primary key?  (Bruno Wolff III <bruno@wolff.to>)
List pgsql-general
Is it possible to have the equivalent of a serial data type in a table,
sub-categorized?

Assume the following:

create table categories (id serial, title varchar);

Now, I want to create an entries table, and by default, count serially by
category, so that category 1 has entries.sequence of 1, 2, 3, and so does
category 2. (where sequence= 1, 2, 3...)  Something like:

create table entries (
categories_id integer not null references categories(id),
sequence default max(entries.sequence WHERE categories_id=this.categories_id),
primary key (categories_id, sequence)
);

I'm not sure about the semantics of this, but i want sequence to start at 1,
and count up, for its category as defined by categories_id. I already know
that I can set enforce the uniqueness of categories_id and sequence with thte
primary key, and I could just write some more app code to do a query to get
the max value of sequence where categories_id=$categories_id, but can this be
done without adding a bunch of xtra application code?

-Ben
--
"The best way to predict the future is to invent it."
- XEROX PARC slogan, circa 1978

pgsql-general by date:

Previous
From: Sarah Ewen
Date:
Subject: pg_dump fails with socket_not_open
Next
From: Tom Lane
Date:
Subject: Re: pg_dump fails with socket_not_open