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