Thread: Why the weak key is created as unique

Why the weak key is created as unique

From
Marat Khairullin
Date:
Example:

mydb=> create table AAA (a serial primary key);
NOTICE:  CREATE TABLE will create implicit sequence 'aaa_a_seq' for SERIAL column 'aaa.a'
NOTICE:  CREATE TABLE/PRIMARY KEY will create implicit index 'aaa_pkey' for table 'aaa'
CREATE

mydb=> create table BBB (a serial references AAA, b integer, primary key(a,b));
NOTICE:  CREATE TABLE will create implicit sequence 'bbb_a_seq' for SERIAL column 'bbb.a'
NOTICE:  CREATE TABLE/PRIMARY KEY will create implicit index 'bbb_pkey' for table 'bbb'
NOTICE:  CREATE TABLE/UNIQUE will create implicit index 'bbb_a_key' for table 'bbb'
NOTICE:  CREATE TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
CREATE

mydb=> insert into AAA values (1);
INSERT 20369 1

mydb=> insert into BBB values (1,1);
INSERT 20370 1
mydb=> insert into BBB values (1,2);
ERROR:  Cannot insert a duplicate key into unique index bbb_a_key

I would like that the pair keys (a,b) was unique.
Certainly, I can remove unique index 'bbb_a_key'...
But how more correctly?

--
Marat Khairullin mailto:xmm@rambler.ru
Marat.Khairullin@f92.n5049.z2.fidonet.org
----
  Бесплатная почта http://mail.Rambler.ru/
  Рамблер-Покупки http://ad.rambler.ru/ban.clk?pg=1691&bn=9346

Re: [SQL] Why the weak key is created as unique

From
Stephan Szabo
Date:
You probably do not want a serial in BBB since you want
to be setting the values.  Use "a int references AAA" instead
I think.