2016-01-19 274 views
0

我正在研究一點支持(票證)系統。我的表是門票和ticket_replies。mysql外鍵「權限」刪除

票表的設計是

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

這不能跟你必須添加觸發器或東西,使用 – Batbayar

+0

複式外鍵不會做外鍵來完成解決這個問題對嗎? –

+0

是的,我認爲使用觸發器是你的最佳選擇。 – Batbayar

回答

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