首页 > 解决方案 > 无法在引用同一表的同一列的表的两列上添加更新级联

问题描述

我正在使用 SQL Server。

我有一个名为的表PROGRAM_MASTER,它有两列created_byupdated_by并且引用USERScolumn 上的表id

现在我想使用下面的 SQL 命令为这两个列定义级联更新选项。

alter table program_master add constraint program_master_created_by_foreign foreign key (created_by) references users (id) on update cascade

alter table program_master add constraint program_master_upated_by_foreign foreign key (updated_by) references users (id) on update cascade

但是外键约束被添加到created_by,但是在为updated_by我创建一个时出现以下错误。

SQLSTATE[42000]:[Microsoft][ODBC Driver 17 for SQL Server][SQL Server]在表 'program_master' 上引入 FOREIGN KEY 约束 'program_master_updated_by_foreign' 可能会导致循环或多个级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。

我应该如何解决这个错误?

标签: sql-servertsqlforeign-keyscascade

解决方案


推荐阅读