删除时mysql外键“权限”

时间:2016-01-19 08:28:31

标签: mysql foreign-keys foreign-key-relationship

我正在开发一个小支持(票证)系统。我的表是票证和ticket_replies。

门票表的设计是

id|user_id|title|...

ticket_replies的设计如下:

id|ticket_id|...

我添加的外键如下所示:

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

现在当我删除“ticket”表中的“ticket”时,它也会在“ticket_replies”中被删除。另一种方法不起作用,总而言之,我希望这也能以其他方式工作,因此我的数据库始终具有一致性。怎么做?

1 个答案:

答案 0 :(得分:0)

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

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