mysql外键“;许可证“;删除时

mysql外键“;许可证“;删除时,mysql,foreign-keys,foreign-key-relationship,Mysql,Foreign Keys,Foreign Key Relationship,我正在研究一个小的支持(票证)系统。我的桌子是票和票 票务表的设计 id|user_id|title|... 票证回复的设计如下所示: id|ticket_id|... 我添加的外键如下所示: ALTER TABLE `ticket_replies` ADDFOREIGN KEY (`ticket_id`) REFERENCES `sampleauth`.`tickets`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; 现在,当我在“ticke

我正在研究一个小的支持(票证)系统。我的桌子是票和票

票务表的设计

id|user_id|title|...
票证回复的设计如下所示:

id|ticket_id|...
我添加的外键如下所示:

 ALTER TABLE `ticket_replies` ADDFOREIGN KEY (`ticket_id`)
 REFERENCES `sampleauth`.`tickets`(`id`) ON DELETE CASCADE ON UPDATE CASCADE; 

现在,当我在“ticket”表中删除一个“ticket”时,它也会在“ticket\u回复”中被删除。另一方面,这不起作用,总之,我希望这也能起作用,所以我的数据库一直保持一致性。如何执行此操作?

添加此触发器将在您尝试删除外键时删除其主键

CREATE TRIGGER `ticket_replies_BEFORE_DELETE` BEFORE DELETE ON `ticket_replies` FOR EACH ROW
BEGIN
    DELETE FROM tickets WHERE id = OLD.ticket_id;
END

这不能用外键完成,你必须添加触发器,或者使用多外键不能解决这个问题,对吗?是的,不会,我认为使用触发器是你最好的选择。