From: | Shane Ambler <pgsql(at)Sheeky(dot)Biz> |
---|---|
To: | Shavonne Marietta Wijesinghe <shavonne(dot)marietta(at)studioform(dot)it> |
Cc: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: Serial not nulla |
Date: | 2008-02-08 13:17:51 |
Message-ID: | 47AC567F.9020907@Sheeky.Biz |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
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
From | Date | Subject | |
---|---|---|---|
Next Message | Shane Ambler | 2008-02-08 13:53:50 | Re: Postgres roles |
Previous Message | Pascal Tufenkji | 2008-02-08 13:02:38 | Postgres roles |