【发布时间】:2016-08-17 04:44:46
【问题描述】:
我需要一个表格来保存这样的层次结构树数据(即大陆、国家、城市)
id name parent
-------------------
1 world null
2 Europe 1
3 Asia 1
4 France 2
5 Paris 4
6 Lyon 4
我想删除 France 并希望该表级联删除所有法国城市。但是当我像这样创建表格时
create table locations
(
id int identity(1, 1),
name varchar(255) not null,
parent_id int,
constraint pk__locations
primary key clustered (id),
constraint fk__locations
foreign key (parent_id)
references locations (id)
on delete cascade
on update no action
)
我遇到了一个错误
在表上引入 FOREIGN KEY 约束“fk__locations” “位置”可能会导致循环或多个级联路径。指定开 DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。
信息说
- 指定
ON DELETE NO ACTION- 这正是我不想要的 - 指定
ON UPDATE NO ACTION- 指定 - 修改其他 FOREIGN KEY 约束 - 我不明白这个
谁能帮忙?
【问题讨论】:
-
可能重复:stackoverflow.com/questions/528529/… 我想你需要一个触发器。
-
你需要一个代替触发器
标签: sql-server tsql