我正在尝试创建此活动表:
CREATE TABLE activity
(
activity_id int,
description varchar(300),
start_date date,
due_date date,
plannes_price float,
hours_worked int,
billing_rate float,
actual_price float,
status varchar(50),
employee_id int,
date_completed date,
service_id int,
CONSTRAINT pk_activityId PRIMARY KEY (activity_id),
CONSTRAINT fk_act_emp_id FOREIGN KEY (employee_id)
REFERENCES employee(employee_id)
ON UPDATE CASCADE ON DELETE SET NULL,
CONSTRAINT fk_act_ser_id FOREIGN KEY (service_id)
REFERENCES service(service_id)
ON UPDATE CASCADE ON DELETE NO ACTION
)
但是我得到了这个错误:
msg 1785,16级,状态0,第114行
在表"活动"上引入外键约束" FK_ACT_SER_ID"可能会导致周期或多个级联路径。在删除no操作或更新no操作上指定或修改其他外键约束。msg 1750,16级,状态0,第114行
无法创建约束或索引。请参阅以前的错误。
如果我设置了fk_act_ser_id
约束UPDATE NO ACTION
,则代码将在没有错误的情况下运行。但是我想设置它是更新级联。
有人知道如何解决此问题吗?
这一切都与此处未显示的表有关。有多种删除activity
的方法 - 其中一种方法有两种通往activity
的途径。例如,如果service
可以导致删除employee
(或employee
删除可以删除service
)或其他一些删除路径。您只能从给定的启动表到任何表的删除/更新路径。