问题描述
考虑以下架构。
- Emp(eid:整数,ename:字符串,年龄:整数,薪水:实数)
- 有效(eid:整数,did:整数,pct_time:整数)
- 部门(did:整数,预算:真实,managerid:整数)
一名员工可以在多个部门工作; Works 关系的 pct_time 字段显示给定员工在给定部门工作的时间百分比。
对架构应用以下约束:
- 为 Emp 定义一个约束,以确保每位员工的工资至少为 10000。
- 每位经理也必须是一名员工。
- 定义部门的约束,以确保所有经理的年龄 > 30
SOLN-
CREATE TABLE Emp (eid INTEGER,ename CHAR(10),age INTEGER CHECK (age >= 30),salary REAL,PRIMARY KEY (eid),CHECK (salary >= 10000));
CREATE ASSERTION ManagerIsEmployee CHECK ( ( SELECT COUNT (*) FROM Dept D WHERE D.managerid NOT IN (SELECT * FROM Emp)) = 0)
CREATE TABLE Dept (did INTEGER,buget REAL,managerid INTEGER,PRIMARY KEY (did),FOREIGN KEY (managerid) REFERENCES Emp,CHECK((SELECT E.age FROM Emp E,Dept D) WHERE E.eid=D.managerid)>30)
错误 - 创建断言尚未实现
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)