我正在开发一个小支持(票证)系统。我的表是票证和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”中被删除。另一种方法不起作用,总而言之,我希望这也能以其他方式工作,因此我的数据库始终具有一致性。怎么做?
答案 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