【发布时间】:2019-11-21 09:28:41
【问题描述】:
我有这个定义的类型和表:
CREATE TYPE emp_role AS ENUM ('Manager','Developer','Accountant','Secretary');
CREATE TABLE employees (
employee_id int NOT NULL UNIQUE,
lastname text NOT NULL,
firstname text NOT NULL,
address text NOT NULL,
hire_date date NOT NULL,
salary numeric NOT NULL CHECK(salary > 1.500),
emp_role emp_role,
department_id int NOT NULL
);
我想在这个表上创建一个约束,而不修改它的定义,它同时依赖于属性hire_date、salary和emp_role,这意味着例如具有emp_role的员工Manager 在2019-21-11 之后聘用的salary不能比15.000大,所以这样的查询应该返回错误:
INSERT INTO employees VALUES(2,'foo','bar','foostreet','2019-12-20',18.0000,'Manager',3);
我不知道怎么做
【问题讨论】:
标签: sql postgresql constraints ddl