根据多个属性定义SQL约束

问题描述 投票:0回答:1

我有此定义的类型和表:

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_datesalaryemp_role,例如,这意味着emp_role为[ Manager之后聘用的C0]不能比2019-21-11salary,因此这样的查询应返回错误:

15.000

我对如何执行此操作不熟悉

sql postgresql constraints ddl
1个回答
0
投票

您可以如下创建多列检查约束:

INSERT INTO employees VALUES(2,'foo','bar','foostreet','2019-12-20',18.0000,'Manager',3);
© www.soinside.com 2019 - 2024. All rights reserved.