我正在尝试创建此活动表:
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,Level 16,State 0,Line 114
在表'activity'上引入FOREIGN KEY约束'fk_act_ser_id'可能会导致循环或多个级联路径。指定ON DELETE NO ACTION或ON UPDATE NO ACTION,或修改其他FOREIGN KEY约束。Msg 1750,Level 16,State 0,Line 114
无法创建约束或索引。查看以前的错误。
如果我设置fk_act_ser_id
约束UPDATE NO ACTION
,则代码将运行且没有错误。但我想设置它是UPDATE CASCADE。
有谁知道如何解决这个问题?
答案 0 :(得分:2)
关于这里没有显示的表格的全部内容。有多种方法可以删除activity
- 其中一种方法有两条activity
路径。例如,如果service
可以导致删除employee
(或employee
删除,则可以删除service
)...或其他一些删除路径。对于给定起始表中的任何表,您只能有一个删除/更新路径。