pg.ddx.io pgsql-sql@postgresql.org mailing list archive
help / color / mirror / Atom feedhow to add primary key to existing table with multiple primary keys
3+ messages / 3 participants
[nested] [flat]
* how to add primary key to existing table with multiple primary keys
@ 2006-02-24 01:45 Daniel Joo <djoo@vistagen-inc.com>
2006-03-01 02:53 ` Re: how to add primary key to existing table with multiple Stephan Szabo <sszabo@megazone.bigpanda.com>
2006-03-01 10:17 ` Re: how to add primary key to existing table with multiple primary keys Mauricio Fernandez A. <mfacontacto@ono.com>
0 siblings, 2 replies; 3+ messages in thread
From: Daniel Joo @ 2006-02-24 01:45 UTC (permalink / raw)
To: pgsql-sql
Hi there,
I am trying to add another primary key to an existing table with two other
primary keys. I got the following error when I tried this command:
alter table extprobe2tissue ADD primary key (expid);
ERROR: multiple primary keys for table "extprobe2tissue" are not allowed
The details of the extprobe2tissue table is:
\d extprobe2tissue;
Table "public.extprobe2tissue"
Column | Type | Modifiers
-------------+------------------------+-----------
probeid | integer | not null
tissueid | integer | not null
value | double precision | not null
entrydate | date | not null
description | character varying(200) |
qval | double precision |
expid | integer | not null
Indexes:
"extprobe2tissue_pkey" PRIMARY KEY, btree (probeid, tissueid)
"extprobe2tissue_probeid" btree (probeid)
"extprobe2tissue_tissueid" btree (tissueid)
Foreign-key constraints:
"extprobe2tissue_tissueid_fkey" FOREIGN KEY (tissueid) REFERENCES
tissue(tissueid)
"extprobe2tissue_probeid_fkey" FOREIGN KEY (probeid) REFERENCES
extprobe(probeid)
Any suggestion would be much appreciated.
Thanks!
^ permalink raw reply [nested|flat] 3+ messages in thread
* Re: how to add primary key to existing table with multiple
2006-02-24 01:45 how to add primary key to existing table with multiple primary keys Daniel Joo <djoo@vistagen-inc.com>
@ 2006-03-01 02:53 ` Stephan Szabo <sszabo@megazone.bigpanda.com>
1 sibling, 0 replies; 3+ messages in thread
From: Stephan Szabo @ 2006-03-01 02:53 UTC (permalink / raw)
To: Daniel Joo <djoo@vistagen-inc.com>; +Cc: pgsql-sql
On Thu, 23 Feb 2006, Daniel Joo wrote:
> I am trying to add another primary key to an existing table with two
> other primary keys. I got the following error when I tried this
> command:
You only can have one primary key. The table you gave has a single
primary key with two columns. Are you trying to guarantee that expid
along is unique or that the set (probeid, tissueid, expid) is unique?
You can make expid UNIQUE and NOT NULL for the first case which is similar
to a primary key (although it's not a default foreign key target). In the
second you can drop the current constraint and add one on the three
columns.
> Indexes:
>
> "extprobe2tissue_pkey" PRIMARY KEY, btree (probeid, tissueid)
> "extprobe2tissue_probeid" btree (probeid)
> "extprobe2tissue_tissueid" btree (tissueid)
^ permalink raw reply [nested|flat] 3+ messages in thread
* Re: how to add primary key to existing table with multiple primary keys
2006-02-24 01:45 how to add primary key to existing table with multiple primary keys Daniel Joo <djoo@vistagen-inc.com>
@ 2006-03-01 10:17 ` Mauricio Fernandez A. <mfacontacto@ono.com>
1 sibling, 0 replies; 3+ messages in thread
From: Mauricio Fernandez A. @ 2006-03-01 10:17 UTC (permalink / raw)
To: pgsql-sql
Your table has a primary key yet, so you can?t add a second primary key.
You only can define one pk, however it can be composed as your table has (it
now has 2 columns), so I think you need to drop the current pk and add again
the new pk with your 3 columns (probeid, tissueid, expid).
Review this
http://www.postgresql.org/docs/8.1/interactive/ddl-constraints.html#AEN2038
Mauricio Fernandez A.
Ingeniero de Sistemas
Universidad Autonoma de Manizales (Colombia)
-----Mensaje original-----
De: pgsql-sql-owner@postgresql.org
[mailto:pgsql-sql-owner@postgresql.org]En nombre de Daniel Joo
Enviado el: viernes, 24 febrero, 2006 2:45
Para: pgsql-sql@postgresql.org
Asunto: [SQL] how to add primary key to existing table with multiple
primary keys
Hi there,
I am trying to add another primary key to an existing table with two other
primary keys. I got the following error when I tried this command:
alter table extprobe2tissue ADD primary key (expid);
ERROR: multiple primary keys for table "extprobe2tissue" are not allowed
The details of the extprobe2tissue table is:
\d extprobe2tissue;
Table "public.extprobe2tissue"
Column | Type | Modifiers
-------------+------------------------+-----------
probeid | integer | not null
tissueid | integer | not null
value | double precision | not null
entrydate | date | not null
description | character varying(200) |
qval | double precision |
expid | integer | not null
Indexes:
"extprobe2tissue_pkey" PRIMARY KEY, btree (probeid, tissueid)
"extprobe2tissue_probeid" btree (probeid)
"extprobe2tissue_tissueid" btree (tissueid)
Foreign-key constraints:
"extprobe2tissue_tissueid_fkey" FOREIGN KEY (tissueid) REFERENCES
tissue(tissueid)
"extprobe2tissue_probeid_fkey" FOREIGN KEY (probeid) REFERENCES
extprobe(probeid)
Any suggestion would be much appreciated.
Thanks!
^ permalink raw reply [nested|flat] 3+ messages in thread
end of thread, other threads:[~2006-03-01 10:17 UTC | newest]
Thread overview: 3+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2006-02-24 01:45 how to add primary key to existing table with multiple primary keys Daniel Joo <djoo@vistagen-inc.com>
2006-03-01 02:53 ` Re: how to add primary key to existing table with multiple Stephan Szabo <sszabo@megazone.bigpanda.com>
2006-03-01 10:17 ` Mauricio Fernandez A. <mfacontacto@ono.com>
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox