Mark, I do recall something about that, but, I believe, if the index is unique, then if you disable the constraint, the index is dropped, presumably because by disabling a unique constraint, you no longer want that constraint imposed, and the only way to ensure it's not=20 is to drop the unique index. If the index supporting the PK (or UK) is non-unique, then it's not dropped. I believe that at least was true in 8i. I believe that starting in 9i, there is a "KEEP INDEX" syntax, which I don't have handy at the moment. =20 Still awake....can't sleep..... Yawn..... -Mark -----Original Message----- From: oracle-l-bounce@xxxxxxxxxxxxx on behalf of Mark Richard Sent: Tue 8/24/2004 1:31 AM To: oracle-l@xxxxxxxxxxxxx Cc:=09 Subject: Re: non unique Index and Primary Key on same column. Is it = needed? In addition to Mark Bobak's reply... I believe there is a subtle difference (or used to be) when it comes to dropping the primary key. Having the index defined manually means = Oracle won't removing the index when dropping the primary key. If you perform = a lot of DDL on the database (ie: dropping primary keys when loading = batches of data overnight) this may be significant. I think newer versions of Oracle have additional syntax when dropping constraints to either keep = or remove the index. I'm positive this has been discussed before in detail - you might want = to try searching the archives (even via google if necessary). The previous discussion will have more details and be more correct than myself since = I'm working by memory. You could also search the Oracle doco for syntax options in "alter table ... drop constraint" - I think it might show the syntax for keeping indexes in Oracle 9i and later (I only have Oracle 8i doco handy). Regards, Mark. = =20 nn20002@xxxxxxxxxx = =20 et To: = oracle-l@xxxxxxxxxxxxx = =20 Sent by: cc: = =20 oracle-l-bounce@fr Subject: non unique = Index and Primary Key on same column. Is it needed? =20 eelists.org = =20 = =20 = =20 24/08/2004 14:00 = =20 Please respond to = =20 oracle-l = =20 = =20 = =20 Hi , I saw a script creating a table and then an index on one of the column. = But after that they alter the table to create an Primary Key on the same column. Why is that needed. I am of the assumption that when you create a = primary key, the system automatically creates an index to enforce it. The same = key could be used as an index also. Then why they create an extra index. example CREATE TABLE MACHINE( MACHINE_KEY INTEGER NOT NULL , USABILITY_SETTINGS_KEY INTEGER NULL , MACHINE_ID VARCHAR2(256) NULL , NAME VARCHAR2(50) NULL , STATUS VARCHAR2(25) NULL ); CREATE INDEX MACHINE_INDEX ON MACHINE( MACHINE_KEY ); ALTER TABLE MACHINE ADD PRIMARY KEY ( MACHINE_KEY ); I would appreciate if you could help me. Sorry if it is a silly = question. Thanks nagarajan __________________________________________________________________ Switch to Netscape Internet Service. As low as $9.95 a month -- Sign up today at http://isp.netscape.com/register Netscape. Just the Net You Need. New! Netscape Toolbar for Internet Explorer Search from anywhere on the Web and block those annoying pop-ups. Download now at http://channels.netscape.com/ns/search/install.jsp ---------------------------------------------------------------- Please see the official ORACLE-L FAQ: http://www.orafaq.com ---------------------------------------------------------------- To unsubscribe send email to: oracle-l-request@xxxxxxxxxxxxx put 'unsubscribe' in the subject line. -- Archives are at //www.freelists.org/archives/oracle-l/ FAQ is at //www.freelists.org/help/fom-serve/cache/1.html ----------------------------------------------------------------- <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<---->>>>>>>>>>>>>>>>>>>= >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Privileged/Confidential information may be contained in this message. If you are not the addressee indicated in this message (or responsible = for delivery of the message to such person), you may not copy or deliver = this message to anyone. In such a case, you should destroy this message and kindly notify the = sender by reply e-mail or by telephone on (03) 9612-6999 or (61) 3 = 9612-6999. Please advise immediately if you or your employer does not consent to = Internet e-mail for messages of this kind. Opinions, conclusions and other information in this message that do not = relate to the official business of Transurban Infrastructure = Developments Limited and CityLink Melbourne Limited shall be understood = as neither given nor endorsed by them. <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<---->>>>>>>>>>>>>>>>>>>= >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ---------------------------------------------------------------- Please see the official ORACLE-L FAQ: http://www.orafaq.com ---------------------------------------------------------------- To unsubscribe send email to: oracle-l-request@xxxxxxxxxxxxx put 'unsubscribe' in the subject line. -- Archives are at //www.freelists.org/archives/oracle-l/ FAQ is at //www.freelists.org/help/fom-serve/cache/1.html ----------------------------------------------------------------- ---------------------------------------------------------------- Please see the official ORACLE-L FAQ: http://www.orafaq.com ---------------------------------------------------------------- To unsubscribe send email to: oracle-l-request@xxxxxxxxxxxxx put 'unsubscribe' in the subject line. -- Archives are at //www.freelists.org/archives/oracle-l/ FAQ is at //www.freelists.org/help/fom-serve/cache/1.html -----------------------------------------------------------------