lei
lei

Reputation: 13

How to allow a gender field to accept only two values?

The question: Add a gender field. Ensure the field will only accept ‘M’ or ‘F’ and the default value should be ‘F’

PostgresSQL code:

alter table Patient
add Gender varchar(1)  default 'F' ,Check (Gender = 'M' or Gender = 'F');

ERROR: syntax error at or near "Check"
LINE 2: add Gender varchar(1) default 'F' ,Check (Gender = 'M' or G...

How do i fix it?

Upvotes: 1

Views: 496

Answers (2)

Laurenz Albe
Laurenz Albe

Reputation: 247123

Your approach is good, there is only a small syntax error:

alter table Patient
   add Gender varchar(1) default 'F',
   add Check (Gender = 'M' or Gender = 'F');

The second add was missing. Using IN would be typographically shorter.

Upvotes: 0

Rahul Beniwal
Rahul Beniwal

Reputation: 687

Try Below

CREATE TYPE gender AS ENUM ('F', 'M');

CREATE TABLE t (
    g gender default 'F' -- <==== default value
);

Upvotes: 1

Related Questions