Alter Contraint
Now we can actually use Constraints properly in 7.3 (unlike
previous versions) Is it possible to change them without dropping and
recreating.
I think somone else has already asked this within the last few
days. But what I need to do is make my constraints deferrable. I'm not
really sure why deferrable is not the default.
Many thanks
Peter Childs
On Fri, 7 Feb 2003, Peter Childs wrote:
Now we can actually use Constraints properly in 7.3 (unlike
previous versions) Is it possible to change them without dropping and
recreating.
Not really, unfortunately.
I think somone else has already asked this within the last few
days. But what I need to do is make my constraints deferrable. I'm not
really sure why deferrable is not the default.
AFAICT, SQL92 requires INITIALLY IMMEDIATE NOT DEFERRABLE as the
default (10.6 SR3 & 4b).
Peter Childs <blue.dragon@blueyonder.co.uk> writes:
Now we can actually use Constraints properly in 7.3 (unlike
previous versions) Is it possible to change them without dropping and
recreating.
I think somone else has already asked this within the last few
days. But what I need to do is make my constraints deferrable.
Have you looked at SET CONSTRAINTS ? I'm not sure how complete our
implementation is, but it seems more nearly a match for your problem
than a persistent ALTER command.
I'm not really sure why deferrable is not the default.
Because the SQL spec says so.
regards, tom lane
On Fri, 7 Feb 2003, Tom Lane wrote:
Peter Childs <blue.dragon@blueyonder.co.uk> writes:
Now we can actually use Constraints properly in 7.3 (unlike
previous versions) Is it possible to change them without dropping and
recreating.
I think somone else has already asked this within the last few
days. But what I need to do is make my constraints deferrable.Have you looked at SET CONSTRAINTS ? I'm not sure how complete our
implementation is, but it seems more nearly a match for your problem
than a persistent ALTER command.
AFAIK, SET CONSTRAINTS only lets you change the check time of
deferrable constraints, it doesn't let you make a not deferrable
constraint deferrable.
Stephan Szabo <sszabo@megazone23.bigpanda.com> writes:
AFAIK, SET CONSTRAINTS only lets you change the check time of
deferrable constraints, it doesn't let you make a not deferrable
constraint deferrable.
Good point, if your constraint wasn't deferrable to begin with then
you can't make it so with SET. But on the other hand, making it so
is a one-time operation, so deleting and recreating the constraint
doesn't seem that big a deal. If I recall Peter's original message,
he was mainly concerned about flipping from the not-deferred to deferred
state and back efficiently --- that's what SET seems designed for.
I have nothing against providing an ALTER if someone wants to do the
legwork, but it doesn't seem like a high-priority problem ...
regards, tom lane