如何解决需要一个约束来有条件地避免某些唯一性
我创建并填写了下表:
CREATE TABLE Assignments(
ID_CxC CHAR(3) NOT NULL PRIMARY KEY,truck_code char(3) NOT NULL REFERENCES Trucks(truck_code),driver_code char(5) NOT NULL REFERENCES Drivers(driver_code),[date] DATE NOT NULL
);
INSERT Assignments
VALUES(1,1,'06-11-2021');
INSERT Assignments
VALUES(2,2,'06-11-2021');
INSERT Assignments
VALUES(3,3,'06-11-2021');
INSERT Assignments
VALUES(4,4,'06-11-2021');
INSERT Assignments
VALUES(5,5,'06-11-2021');
INSERT Assignments
VALUES(6,6,'06-11-2021');
INSERT Assignments
VALUES(7,'06-11-2021');
INSERT Assignments
VALUES(8,'06-11-2021');
INSERT Assignments
VALUES(9,'06-11-2021');
INSERT Assignments
VALUES(10,'06-11-2021');
我需要创建一个约束,如果司机与之前在同一天分配的卡车是同一辆卡车,则该约束将只允许司机在一天内分配多于一辆卡车。
我试图编写一个 CHECK 约束,以防 UNIQUE(driver_code,date) 被破坏,该语句仅在验证 UNIQUE(driver_code,truck_code,date) 也是假的情况下才允许插入或更新。>
解决方法
编写一个布尔函数,传入 Dateval、Truckval 和 Driverval 并返回值
#HOST BASH SHELL
docker cp 32162f4ebeb0:/dir_inside_container/image1.jpg /dir_inside_host/image1.jpg
docker cp /dir_inside_host/image1.jpg 32162f4ebeb0:/dir_inside_container/image1.jpg
设置调用此函数的表检查约束,以架构名称开头。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。