0
A
回答
1
聲明參照動作:ON DELETE CASCADE,例如:
CREATE TABLE user (
user_id int PRIMARY KEY
);
CREATE TABLE offer (
offer_id int PRIMARY KEY
);
CREATE TABLE user_offer (
user_id int,
offer_id int,
PRIMARY KEY (user_id, offer_id),
FOREIGN KEY (user_id) REFERENCES user (user_id) ON DELETE CASCADE,
FOREIGN KEY (user_id) REFERENCES offer (offer_id) ON DELETE CASCADE
);
有趣的是,似乎在指定 「速記」 外鍵語法不起作用參照動作(確認在MySQL 5.5.30,5.6.6 m9下)。下面被解析,但是當user
被刪除,相應user_offer
沒有被刪除:
CREATE TABLE user_offer (
user_id int REFERENCES user (user_id) ON DELETE CASCADE,
offer_id int REFERENCES offer (offer_id) ON DELETE CASCADE,
PRIMARY KEY (user_id, offer_id)
);
1
您可以將模型的創建中指定的:
CREATE TABLE users_offers (user_id INT NOT NULL,
offer_id INT NOT NULL,
PRIMARY KEY (user_id, offer_id),
FOREIGN KEY (user_id) REFERENCES users(id)
ON DELETE CASCADE,
FOREIGN KEY (offer_id) REFERENCES offers(id)
ON DELETE CASCADE);
你可以看到this Fiddle工作的例子。
相關問題
- 1. Python重複數據刪除記錄 - 重複數據刪除
- 2. 刪除記錄
- 3. 刪除記錄
- 4. 刪除elasticsearch中的自動化記錄
- 5. 自動從Mysql表中刪除記錄
- 6. 使用LINQ自動刪除子記錄
- 7. Rails自動刪除帖子記錄
- 8. 幾分鐘後自動刪除記錄
- 9. 自動刪除舊數據
- 10. 如何刪除datagrid以及數據庫
- 11. Grails的級聯刪除父刪除子記錄逐一
- 12. 重複數據刪除記錄,而不刪除
- 13. 數據庫:刪除或不刪除記錄
- 14. 從Access數據庫中刪除記錄,刪除時出錯
- 15. Datarepeater刪除只刪除最高記錄
- 16. 如何使用Laravel自動刪除數據庫記錄?
- 17. 自動過期並刪除SQLite數據庫中的記錄
- 18. 如何從數據庫表中自動刪除舊記錄?
- 19. 刪除所有關聯的記錄
- 20. TSQL級聯刪除子記錄?
- 21. 刪除沒有關聯的記錄
- 22. 刪除unforgeted記錄
- 23. Openerp刪除記錄
- 24. 多刪除記錄
- 25. Cassandra刪除記錄
- 26. 刪除記錄,但在數據庫
- 27. AJAX呼叫刪除數據庫記錄
- 28. R - 刪除數據幀中的記錄
- 29. 刪除聊天記錄從數據庫
- 30. 從數據庫中刪除記錄
級聯觸發刪除? – Randy 2013-04-21 01:07:23