Re: [HACKERS] Re: NULL & NOT NULL
От | Jose' Soares |
---|---|
Тема | Re: [HACKERS] Re: NULL & NOT NULL |
Дата | |
Msg-id | 3688EA81.15DF76BD@sferacarta.com обсуждение исходный текст |
Ответ на | Re: [HACKERS] Re: NULL & NOT NULL (Bruce Momjian <maillist@candle.pha.pa.us>) |
Список | pgsql-hackers |
Bruce Momjian wrote: > > > "Thomas G. Lockhart" <lockhart@alumni.caltech.edu> writes: > > >>>>>> create table authors ( > > >>>>>> zip char(5) null > > >>>>>> ); > > > > > Sheesh. After that long song and dance about why we can't implement > > > this, it turns out that it works fine. We had been trying to implement a > > > slightly different syntax, "WITH NULL", which conflicted with the > > > SQL92-defined data type declaration "TIMESTAMP WITH TIME ZONE". > > > > > The "Practical SQL Handbook"-compatible form will be available in the > > > next full release of Postgres. Thanks. > > > > Now that we have the syntax problem straightened out: I'm still confused > > about the semantics. Does a "NULL" constraint say that the field > > *must* be null, or only that it *can* be null (in which case NULL is > > just a noise word, since that's the default condition)? I had assumed > > the former, but Bruce seemed to think the latter... > > Can be null. Noise word. At least that is what I rememeber Thomas > saying, and because it was noise, we removed it. In fact, it doesn't > look like the standard accepts it, but there is no reason we can't. This NULL clause is not part of constraints it is a default option and we already support it, there's nothing like: CREATE TABLE table1 (field1 type NULL) in SQL92. but the following is SQL92 and it works on PostgreSQL: prova=> CREATE TABLE table1 (field1 INTEGER DEFAULT NULL); CREATE SQL92 syntax: 11.5 <default clause> Function Specify the default for a column or domain. Format <default clause> ::= DEFAULT <default option> <default option> ::= <literal> | <datetime value function> | USER | CURRENT_USER | SESSION_USER | SYSTEM_USER | NULL -Jose'-
В списке pgsql-hackers по дате отправления: