我刚开始使用SQL developer。
这是我的类的hw,我已经创建了员工-经理关系表。
对于情况a,如果经理丢掉了工作,那么经理字段应该设置为空。
对于情况b,如果经理丢了工作,那么他的雇员也会丢掉工作。
我的桌子看起来像这样
lastName | jobTitle | Department | employeeID | fk_employeeID | fk_employeeID1我不确定为什么我会有两个employeeIDs。
下面是我的DDL代码:
CREATE TABLE Employee
(
lastName varchar (255),
jobTitle varchar (255),
Department varchar (255),
id_Employee integer,
fk_Employeeid_Employee integer NOT NULL,
fk_Employeeid_Employee1 integer,
PRIMARY KEY(id_Employee),
UNIQUE(fk_Employeeid_Employee),
FOREIGN KEY(fk_Employeeid_Employee) REFERENCES Employee (id_Employee),
FOREIGN KEY(fk_Employeeid_Employee1) REFERENCES Employee (id_Employee)
)我想我必须为a和b使用"on delete cascade“,如果你知道怎么做,请帮助我。
发布于 2013-01-26 12:02:45
你的家庭作业可能有点晚了,但以防其他人也来。
CREATE TABLE Employee
(
lastName varchar (255),
jobTitle varchar (255),
Department varchar (255),
id_Employee integer,
fk_Employeeid_Employee integer NOT NULL,
fk_Employeeid_Employee1 integer,
PRIMARY KEY(id_Employee),
UNIQUE(fk_Employeeid_Employee),
FOREIGN KEY(fk_Employeeid_Employee) REFERENCES Employee (id_Employee)
ON UDPATE CASCADE ON DELETE SET NULL,
FOREIGN KEY(fk_Employeeid_Employee1) REFERENCES Employee (id_Employee)
ON UDPATE CASCADE ON DELETE SET NULL
)我不确定为什么你有多个fk_employeeIDs...我假设这是员工经理的id。如果是这样的话,上面的代码应该可以执行您想要的操作。如果删除该管理器,则fk_employeeID字段将设置为空。此外,对管理器id的任何更改都将反映在外键字段中。
希望这能有所帮助,
https://stackoverflow.com/questions/12965339
复制相似问题