Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
![]() |
![]() |
Home -> Community -> Usenet -> c.d.o.server -> Re: How to disable constraint
"Daniel Morgan" <damorgan_at_exxesolutions.com> wrote in message
news:3EB31C70.81D56BA7_at_exxesolutions.com...
> Mark D Powell wrote:
>
> > Daniel Morgan <damorgan_at_exxesolutions.com> wrote in message
news:<3EB27A7B.26181506_at_exxesolutions.com>...
> > > cyril wrote:
> > >
> > > > Hello,
> > > > How to disable all foreign constraints in a table with a single SQL
order ?
> > > >
> > > > sample : 'alter table mytable disable constraint all'
> > > >
> > > > thanks
> > >
> > > Can not be done. They can be deferred in a single statement but not
disabled.
> > >
> > > Which is good because it keep people from doing it so readily.
> > >
> > > The fact that you can do something doesn't mean you should.
> >
> > Cyril, what Daniel did not mention is that it is easy to generate the
> > commands to do this for those times such as when you want perform a
> > mass load task and want to perform the constraint validation at the
> > end rather than row by row.
> >
> > UT1> set pagesize 90
> > UT1> l
> > 1 select 'alter table '||lower(table_name)||chr(10)||
> > 2 ' disable constraint '||lower(constraint_name)||';'
> > 3 from dba_constraints
> > 4 where table_name = 'DR_PART_DEFECT'
> > 5* and constraint_type = 'R'
> > UT1> /
> >
> >
'ALTERTABLE'||LOWER(TABLE_NAME)||CHR(10)||'DISABLECONSTRAINT'||LOWER(CONSTRA
INT_
>
> --------------------------------------------------------------------------
Hi Daniel,
But they're not really the same thing ?
If you have suz data you want to clean up after a load, you still need to disable the constraints and re-enable with novalidate (obviously with a deferrable constraint). You're only delaying (until commit time)the possible inevitable by "only" having an initially deferred deferrable constraint unless it's been disabled as well.
It all depends on "why" the OP wishes to disable these constraints.
I prefer a "white" over a "red" but with a t-bone, I'll go for a Coonawarra red every time ;)
Cheers
Richard Received on Sat May 03 2003 - 08:19:44 CDT
![]() |
![]() |