Re: SET NULL / SET NOT NULL
От | Zeugswetter Andreas SB SD |
---|---|
Тема | Re: SET NULL / SET NOT NULL |
Дата | |
Msg-id | 46C15C39FEB2C44BA555E356FBCD6FA41EB508@m0114.s-mxs.net обсуждение исходный текст |
Ответ на | SET NULL / SET NOT NULL ("Christopher Kings-Lynne" <chriskl@familyhealth.com.au>) |
Список | pgsql-hackers |
> > 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
В списке pgsql-hackers по дате отправления: