Re: ENABLE NOVALIDATE behaviour bug

  • From: "Jonathan Lewis" <jonathan@xxxxxxxxxxxxxxxxxx>
  • To: <oracle-l@xxxxxxxxxxxxx>
  • Date: Tue, 29 Jun 2004 23:26:24 +0100

One thought about adding a column with a default:
the table has to be locked while every row is updated,
and if the update fails, you have a massive rollback.

If this is not something you can spare the time for, 
you might still want to do something like the following:

    add column
    add constraint disable novalidate
    update the column where null in batches - committing
    add the default
    enable the constraint novalidate
    update any columns still null
    validate the constraint


Regards

Jonathan Lewis

http://www.jlcomp.demon.co.uk

http://www.jlcomp.demon.co.uk/faq/ind_faq.html
The Co-operative Oracle Users' FAQ

http://www.jlcomp.demon.co.uk/seminar.html
Optimising Oracle Seminar - schedule updated May 1st


----- Original Message ----- 
From: "Mark Richard" <mrichard@xxxxxxxxxxxxxxxxx>
To: <oracle-l@xxxxxxxxxxxxx>
Sent: Tuesday, June 29, 2004 11:15 PM
Subject: Re: ENABLE NOVALIDATE behaviour bug






Thanks to Tanel and Richard for explaining this.  I know realise that I
misunderstood the meaning of "novalidate" - I was hoping it might mean
"trust me Oracle, I know it to be true" but it can only mean "from today
on, enforce this - who knows about the past".  I should have realised that.

I'll take Tanel's advice of creating the column with a default.  This is
yet another area I wasn't sure about...  I wasn't positive that a default
value would be applied to existing rows since adding a default clause to a
pre-existing column doesn't do this.  So I've asked one question and
received two answers - Well done and thankyou.

Regards,
      Mark.




----------------------------------------------------------------
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
-----------------------------------------------------------------

Other related posts: