sql - 在 SQL Server 中为复合主键定义外键
问题描述
我有两张桌子:Ticket
和TicketRelation
。我正在尝试Tickets
使用TicketRelation
表格关联 2。
我想为两个外键添加级联约束。
我正在使用 SQL Server Management Studio 添加约束,但出现此错误:
在表“ticketRelation”上引入 FOREIGN KEY 约束“FK_destiny_ticket”可能会导致循环或多个级联路径。指定 ON DELETE NO ACTION 或 ON UPDATE NO ACTION,或修改其他 FOREIGN KEY 约束。
我也尝试使用触发器来执行此操作,但我不确定如何定义它。
在这里,我提供了表格定义:
这是基础实体 TICKET
CREATE TABLE ticket
(
ticket_id BIGINT,
some_data VARCHAR (50),
CONSTRAINT PK_ticket PRIMARY KEY (ticket_id)
);
和关系表 TICKETRELATION
CREATE TABLE ticketRelation
(
origin_ticket BIGINT,
destiny_ticket BIGINT,
relation_data VARCHAR (50),
CONSTRAINT PK_ticket_relation PRIMARY KEY (origin_ticket, destiny_ticket),
CONSTRAINT FK_origin_ticket FOREIGN KEY (origin_ticket)
REFERENCES ticket(ticket_id),
CONSTRAINT FK_destiny_ticket FOREIGN KEY (destiny_ticket)
REFERENCES ticket(ticket_id),
)
我想为ON DELETE CASCADE
两个外键添加一个约束:
CONSTRAINT FK_origin_ticket FOREIGN KEY (origin_ticket)
REFERENCES ticket(ticket_id)
ON DELETE CASCADE, -- I want to add this --
CONSTRAINT FK_destiny_ticket FOREIGN KEY (origin_ticket)
REFERENCES ticket(ticket_id)
ON DELETE CASCADE, -- and this --
解决方案
推荐阅读
- javascript - React Native 将文本组件转换为字符串
- selenium - Selenium -- 单击元素的空白区域
- linux-device-driver - 为什么 cdev_add 不执行 driver/base/core.c 的 device_add/kobject_add 之类的操作
- javascript - 使表格单元格为同一行并使其看起来像按钮
- excel - VBA excel中如何设置散点图的X轴?
- typo3 - Getting translated records in CommandController
- ios - Two Collection Views in One View Controller iOS
- sql-server - 执行聚集索引查找与扫描的查询性能缓慢
- rust - 当有一个函数涉及可变/不可变引用作为具有(嵌套)生命周期的参数时,编译器如何处理借用?
- asp.net - 'Microsoft.ACE.OLEDB.120' 提供程序未在本地计算机上注册