Thanks alot Shane..Just what I wanted.. Didn't think of a solution with 3
primary keys.
Have a nice day ^___^
Shavonne Wijesinghe
www.studioform.it
----- Original Message -----
From: "Shane Ambler" <[EMAIL PROTECTED]>
To: "Shavonne Marietta Wijesinghe" <[EMAIL PROTECTED]>
Cc: <pgsql-sql@postgresql.org>
Sent: Friday, February 08, 2008 2:17 PM
Subject: Re: [SQL] Serial not nulla
Shavonne Marietta Wijesinghe wrote:
Hello
I am working with a database that has a Index number defined as Serial
NOT NULL
I used this because,
1. I want to make sure that when many users login at the same time the
Index number won't be repeated.
2. I don't have to increment it by programming (I use ASP)
But now i have a situation that i need to index numbers. For Example i
could have a structure like this
INDEX1 - N_SHEET - TOT_SHEET
1 - 1 - 1
2 - 1 - 3
2 - 2 - 3
2 - 3 - 3
N_SHEET and TOT_SHEET are filled by the user (via web) but i need to hold
on to the INDEX. And while userA is filling the 3 row if userB loggs in i
need to provide the INDEX1 with 3.
Any idea??
As well as using the "Serial NOT NULL" you have also defined this column
as PRIMARY KEY (or a unique index) which is what is preventing the
duplicates in that column. (A primary key is enforced with a unique index)
From the sample shown you can use all three columns as the primary key
with something similar to -
ALTER TABLE my_user_sheets DROP CONSTRAINT my_user_sheets_pkey;
ALTER TABLE my_user_sheets ADD PRIMARY KEY ("INDEX1", "N_SHEET",
"TOT_SHEET");
(this implies that for each user they will have only one row for each
combination of N_SHEET and TOT_SHEET) If you need to allow them to select
the same 2 sheet numbers more than once then I would suggest you have an
extra column for a primary key and redefine INDEX1 as the user_id. (or
just add a user_id column and leave the INDEX1 as it is)
It's not recommended but you could also have the table without a primary
key allowing duplicate value combinations. This would prevent you updating
a single row though.
--
Shane Ambler
pgSQL (at) Sheeky (dot) Biz
Get Sheeky @ http://Sheeky.Biz
---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?
http://www.postgresql.org/docs/faq