Adding ON UPDATE CASCADE to an existing foreign key constraint

Started by Rich Doughtyover 19 years ago4 messages
#1Rich Doughty
rich@opusvl.com

I have a foreign key constraint that I'd like to alter. I'd rather not
drop and re-create it due to the size of the table involved. All I need
to do is add an ON UPDATE CASCADE.

Is it ok to set confupdtype to 'c' in pg_constraint (and will this be
all that's needed) or is it safer to drop and recreate the constraint?

PG Version 8.0.3

Thanks a lot

- Rich Doughty

#2Stephan Szabo
sszabo@megazone.bigpanda.com
In reply to: Rich Doughty (#1)
Re: Adding ON UPDATE CASCADE to an existing foreign key

On Thu, 4 May 2006, Rich Doughty wrote:

I have a foreign key constraint that I'd like to alter. I'd rather not
drop and re-create it due to the size of the table involved. All I need
to do is add an ON UPDATE CASCADE.

Is it ok to set confupdtype to 'c' in pg_constraint (and will this be
all that's needed) or is it safer to drop and recreate the constraint?

I don't think that's going to work, you'd probably need to change the
function associated with the trigger involved too. It's probably safer to
do the drop and create.

#3Jim C. Nasby
jnasby@pervasive.com
In reply to: Stephan Szabo (#2)
Re: [GENERAL] Adding ON UPDATE CASCADE to an existing foreign key

Moving to -hackers...

On Thu, May 04, 2006 at 09:17:31AM -0700, Stephan Szabo wrote:

On Thu, 4 May 2006, Rich Doughty wrote:

I have a foreign key constraint that I'd like to alter. I'd rather not
drop and re-create it due to the size of the table involved. All I need
to do is add an ON UPDATE CASCADE.

Is it ok to set confupdtype to 'c' in pg_constraint (and will this be
all that's needed) or is it safer to drop and recreate the constraint?

I don't think that's going to work, you'd probably need to change the
function associated with the trigger involved too. It's probably safer to
do the drop and create.

It would be nice if there was a way to do this that didn't involve
re-validating all the data. Can this be added as a TODO?
--
Jim C. Nasby, Sr. Engineering Consultant jnasby@pervasive.com
Pervasive Software http://pervasive.com work: 512-231-6117
vcard: http://jim.nasby.net/pervasive.vcf cell: 512-569-9461

#4Rich Doughty
rich@opusvl.com
In reply to: Stephan Szabo (#2)
Re: Adding ON UPDATE CASCADE to an existing foreign key

Stephan Szabo wrote:

On Thu, 4 May 2006, Rich Doughty wrote:

I have a foreign key constraint that I'd like to alter. I'd rather not
drop and re-create it due to the size of the table involved. All I need
to do is add an ON UPDATE CASCADE.

Is it ok to set confupdtype to 'c' in pg_constraint (and will this be
all that's needed) or is it safer to drop and recreate the constraint?

I don't think that's going to work, you'd probably need to change the
function associated with the trigger involved too. It's probably safer to
do the drop and create.

ok, thanks.

--

- Rich Doughty