Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: help: how do you rename a primary key
Joe,
Once you drop the constraint the unique index is dropped in the same time. This way Oracle unsures that no orphrant indexes are left behind. As far as I know there is no way around it.
However, you can speed up the constaint and index rebuild. There is a solution to your problem on the latest Oracle DBA forums: http://www.dbaclick.com/cgi-bin/ib3/ikonboard.cgi?s=3cb72b672158ffff;act=ST; f=20;t=129;hl=primary+key
It explains how to rebuild a primary key and the unique index in parallel.
Hope that helps,
Trifon Anguelov
Senior Oracle DBA
"Joe Sath" <dbadba62_at_hotmail.com> wrote in message
news:2GLt8.4323$8W5.1339_at_nwrddc02.gnilink.net...
> OK,
> I take your guys' advice, not to change any data dictionary.
> But rebuild the parmary key using index take so long, sometime 28 minutes
>
> Whenever you drop the primary key, the unique index associated with it
also
> got dropped.
>
> Is there any way we can only drop the constraint, w/o dropping the unique
> index with it on the same column?
>
> Thanks again for so many response.
>
>
> >Horrible advice. Drop it and recreate it from scratch.
>
> >I would terminate anyone reporting to me that made a >change to a
> dictionary
> >object.
>
> >Then again ... I wouldn't give them privileges that >allowed them to do
it
> so
> >their jobs are pretty safe.
>
> ?Daniel Morgan
>
>
>
> Paul Brewer wrote:
>
> > "Svend Jensen" <Svend_at_OracleCare.Com> wrote in message
> > news:3CB5D01F.80904_at_OracleCare.Com...
> > > Joe Sath wrote:
> > >
> > > > Hi, Folks
> > > >
> > > > I need to rename a primary key with a unick index. The table is big,
> if
> > I
> > > > drop the primary key and then rebuild it with "using index", it will
> > take a
> > > > while.
> > > >
> > > > Is there any way we can just rename it like we rename a index?
> > > >
> > > > Thanks for your help.
> > > >
> > > >
> > > >
> > >
> > > Yes, log in as sys, update con$ set name = new_name
> > > where con# = (select con# from con$
> > > where owner = 'constraint_owner'
> > > name = 'old_name')
> > >
> > > There is a unique index i_con2 on con$ (con#)
> > > and a unique index i_con1 on (owner, name)
> > >
> > > These cant be rebuild, they are part of instance warmstart, as you can
> > > se from bootstrap$
> > >
> > > I have used this method on 8.1.7 without any negative impact. But only
> > > if the need is there and no other solution could be applied while
> > > 'business as usual' was ongoing.
> > >
> > > rgds
> > >
> > > /svend
> > >
> > This is bad advice.
> >
> > Paul
>
>
>
Received on Fri Apr 12 2002 - 22:28:08 CDT