Thread: Field Constraints
Hello, I have created a DB and TABLE but would like to constrain one field to accept either "YES" or "NO" only. How can I set this up? I have tried various syntactic constructs of Prior_Rx varchar(3) NULL CHECK ('Yes', 'No'), Prior_Rx varchar(3) NULL CHECK (VALUE 'Yes', 'No'), Prior_Rx varchar(3) NULL CHECK ('Yes', 'No'), Prior_Rx varchar(3) NULL CONSTRAINT (CHECK (VALUE 'Yes', 'No')), Prior_Rx varchar(3) NULL CONSTRAINT (CHECK ('Yes', 'No')), Prior_Rx varchar(3) NULL CONSTRAINT (CHECK (VALUE Yes, No)), Prior_Rx varchar(3) NULL CONSTRAINT (CHECK (Yes, No)), Prior_Rx varchar(3) NULL CONSTRAINT (CHECK (Yes OR No)), Prior_Rx varchar(3) NULL CHECK (Yes OR No), Prior_Rx varchar(3) NULL CHECK ('Yes' OR 'No'), Obviously they were all wrong, could someone advise? Thanks -- Joe -- PS--------------------------------------------------------------------------------------- Just learned that the datatype should be 'bool' in this case haven't tested it yet But had I wanted to restrict it to say either mike or john, or even one of a list say, 'tea', 'cofee', 'chocolate' or 'espresso', how should that be constructed?
On 6 Mar 2002 at 11:47, Joseph Maxwell wrote: > Hello, > I have created a DB and TABLE but would like to constrain one field to > accept either "YES" or "NO" only. How can I set this up? I have tried > various syntactic constructs of > [snip] > -- Joe -- > PS------------------------------------------------------------------------- > -------------- > > Just learned that the datatype should be 'bool' in this case > > haven't tested it yet > > But had I wanted to restrict it to say either mike or john, or even one of > a list say, 'tea', 'cofee', 'chocolate' or 'espresso', how should that be > constructed? Try: found_in_ports boolean not null default 'N' check ( found_in_ports in ('Y','N')) The same way as the above AFAIK> -- Dan Langille The FreeBSD Diary - http://freebsddiary.org/ - practical examples
CHECK ("Prior_Rx" ~ '[Yy][Ee][Ss]$|[Nn][Oo]$'); http://www.pgexplorer.com PostgreSQL GUI ----- Original Message ----- From: "Joseph Maxwell" <jemaxwell@jaymax.com> To: <pgsql-general@postgresql.org> Sent: Wednesday, March 06, 2002 9:47 PM Subject: [GENERAL] Field Constraints > Hello, > I have created a DB and TABLE but would like to constrain one field to > accept either "YES" or "NO" only. How can I set this up? > I have tried various syntactic constructs of > > Prior_Rx varchar(3) NULL CHECK ('Yes', 'No'), > Prior_Rx varchar(3) NULL CHECK (VALUE 'Yes', 'No'), > Prior_Rx varchar(3) NULL CHECK ('Yes', 'No'), > Prior_Rx varchar(3) NULL CONSTRAINT (CHECK (VALUE > 'Yes', 'No')), > Prior_Rx varchar(3) NULL CONSTRAINT (CHECK ('Yes', > 'No')), > Prior_Rx varchar(3) NULL CONSTRAINT (CHECK (VALUE Yes, > No)), > Prior_Rx varchar(3) NULL CONSTRAINT (CHECK (Yes, No)), > > Prior_Rx varchar(3) NULL CONSTRAINT (CHECK (Yes OR > No)), > Prior_Rx varchar(3) NULL CHECK (Yes OR No), > Prior_Rx varchar(3) NULL CHECK ('Yes' OR 'No'), > > Obviously they were all wrong, could someone advise? > Thanks > > -- Joe -- > PS-------------------------------------------------------------------------- ------------- > > Just learned that the datatype should be 'bool' in this case > > haven't tested it yet > > But had I wanted to restrict it to say either mike or john, or even one > of a list say, 'tea', 'cofee', 'chocolate' or 'espresso', how should > that be constructed? > > > ---------------------------(end of broadcast)--------------------------- > TIP 5: Have you checked our extensive FAQ? > > http://www.postgresql.org/users-lounge/docs/faq.html >