Re: [GENERAL] CREATE TABLE ... CONSTRAINT
От | Dario Besseghini |
---|---|
Тема | Re: [GENERAL] CREATE TABLE ... CONSTRAINT |
Дата | |
Msg-id | 199808181412.QAA03534@thorin.di.unipi.it обсуждение исходный текст |
Ответ на | Re: [GENERAL] CREATE TABLE ... CONSTRAINT (Sferacarta Software <sferac@bo.nettuno.it>) |
Список | pgsql-general |
> > Ciao Dario, > > Seems that your syntax (CREATE TABLE test (number int4) CONSTRAINT > test_number CHECK number > 3;) > isn't SQL standard. > > ----------------------- > There are two kinds of Integrity CONSTRAINTs; > - the Column constraint: > CREATE TABLE test ( number int check ( number > 3 ) ); > and > - the Table constraint: > CREATE TABLE test ( number int4 CONSTRAINT test_number CHECK (number > 3)); > > This one has the right syntax and it works. > > Best regards, > Jose' mailto:sferac@bo.nettuno.it > Ciao Jose'. I know that the two forms you mention do work. pg_dump, however, not I, uses the third form, which doesn't work. $ pg_dump -t test testdata \connect - besseghi CREATE TABLE test (number int4) CONSTRAINT test_number CHECK number > 3; COPY test FROM stdin; \. The point of my post was that I think the postgresql parser should accept pg_dump's output. Both solutions are legitimate: either pg_dump or the parser might be changed. In the former case, the docs should also be changed, because both `\h create table' in psql and `man create_table' put CONSTRAINT outside the parentheses. Bye, Dario
В списке pgsql-general по дате отправления: