我有一张桌子,叫做我正在创建的Staff。我有专栏:
斯塔夫诺
名字
名字
位置
性
出生日期
薪水
布兰奇诺
目前,我在postgres命令行中的条目是:
CREATE TABLE Staff(
staffNo TEXT CONSTRAINT firstkey PRIMARY KEY,
fname TEXT NOT NULL,
lname TEXT NOT NULL,
position TEXT NOT NULL,
sex CHAR(1) NOT NULL,
DOB DATE NOT NULL,
salary INT NOT NULL,
FOREIGN KEY (branchNo) REFERENCES Branch(branchNo));
我想将其设置为只有经理、助理或主管才能插入该列。对于性,我希望M或F也一样。有谁能提供一个这样做的例子?
最佳答案
您可以使用check约束来实现这一点:
CREATE TABLE Staff(
staffNo TEXT CONSTRAINT firstkey PRIMARY KEY,
fname TEXT NOT NULL,
lname TEXT NOT NULL,
position TEXT NOT NULL,
sex CHAR(1) NOT NULL,
DOB DATE NOT NULL,
salary INT NOT NULL,
FOREIGN KEY (branchNo) REFERENCES Branch(branchNo),
CHECK((position = 'Manager' or position = 'Assistant' or position = 'Supervisor')
AND (sex = 'F' OR sex = 'M')));
但是,如果引用其他表中的常量(也许是
position_table
),则更灵活。关于postgresql - 在Postgres中设置规则以在列中输入,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26834276/