Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> RE: composite primary key versus unique index

RE: composite primary key versus unique index

From: Jacques Kilchoer <Jacques.Kilchoer_at_quest.com>
Date: Wed, 09 Jul 2003 12:01:12 -0700
Message-ID: <F001.005C41A2.20030709115425@fatcity.com>


You mean you created an index A on the table with the descending column order, and then added a primary key constraint, which created another index on the same columns (except that all the columns are in ascending order). Or did you do something different? If you did something different I'd be curious to know exactly what you implemented.

> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
>
> i didnt that try on Oracle, but our mainframe Rdms. We have
> that situation
> there with the ascending en descending attributes in the primary key.
> The workaround is to create a unique index (with and without desc) and
> create afterwards a primary key constraint on it in oracle.
> we have oracle 8.1.7.4.10. (including patches)
>
>
> -----Original Message-----
> From: Jacques Kilchoer
>
> I don't understand how you can have those types of objects created.
>
> Let's assume this situation:
>
> create table T (a number, b number, c number) ;
> create unique index t_pk on t (a asc, b desc) ;
> alter table t add (constraint t_pk primary key (a, b)) ;
>
> In 8.1 and later, the third statement (add constraint) will return an
> ORA-0955 error because Oracle is unable to build the index
> needed for the
> primary key constraint.
>
> In 8.0 and earlier, the "desc" keyword will be ignored in the
> "create index"
> statement, so there will be no reason why you cannot create
> the primary key
> constraint and foreign key constraints referencing that primary key
> constraint.
>
>
> Now, in 8.1 and later, if the index and the PK have different
> names, like
> so:
>
> create table T (a number, b number, c number) ;
> create unique index t_idx1 on t (a asc, b desc) ;
> alter table t add (constraint t_pk primary key (a, b)) ;
>
> then the third statement (add constraint) will create a
> second index on the
> table named t_pk, and again you will be able to create foreign key
> constraints referencing the primary key constraint.
>
> What version of Oracle are you running, and could you describe the
> tables/indexes/constraints involved?

-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: Jacques Kilchoer
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- 858-538-5051 http://www.fatcity.com
San Diego, California        -- Mailing list and web hosting services
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).
Received on Wed Jul 09 2003 - 14:01:12 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US