Re: Serial not nulla
От | Shavonne Marietta Wijesinghe |
---|---|
Тема | Re: Serial not nulla |
Дата | |
Msg-id | 009b01c86c98$5ba507b0$3102a8c0@dream обсуждение исходный текст |
Ответ на | Serial not nulla ("Shavonne Marietta Wijesinghe" <shavonne.marietta@studioform.it>) |
Список | pgsql-sql |
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" <pgsql@Sheeky.Biz> To: "Shavonne Marietta Wijesinghe" <shavonne.marietta@studioform.it> 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
В списке pgsql-sql по дате отправления: