
> > I'm hoping to implement SET NULL / SET NOT NULL for 7.3
> >
> > I've been searching the SQL99 docs but I still can't figure out the syntax
> > for it.
> 
> There isn't really a syntax for it.  SQL only allows you to add table
> constraints, not column constraints.  A NOT NULL constraint is a shorthand
> notation for a CHECK constraint, so to add a NOT NULL constraint you'd
> have to recognize CHECK constraints of the form CHECK (col IS NOT NULL)
> and handle them specially.  To drop NOT NULL constraints, you'd use the
> regular ALTER TABLE blah DROP CONSTRAINT foo; where foo is the name of the
> NOT NULL constraint.  The drawback is that NOT NULL constraints currently
> don't have a name stored.

While this would imho really be the intuitive approach, does the 
feature of dropping a not null constraint really justify storing a name for 
each and every one ? With the added complexity of automatically 
generating a name that fits and is guaranteed unique (and prbably 
predictable) ?

I guess I would rather invent syntax that does without a name.
On the other hand other db's have such syntax and still generate names 
for not null constraints, thus allowing both ways of dropping the constraint,
so ...

Andreas

Wed, 20 Feb 2002 09:34:29 +0100
"Zeugswetter Andreas SB SD" <ZeugswetterA@spardat.at>
Re: SET NULL / SET NOT NULL