我有兩個表,一個ID爲PK。如果說我刪除了ID = 1的條目,我希望它自動刪除另一個表中的ID的FK。換句話說,我希望它也應該刪除其他表中ID = 1的所有條目。我怎樣才能做到這一點?我已經鏈接了PK-FK關係,但是當我刪除PK表中的ID爲1的條目時,它不會刪除FK。刪除主鍵也刪除外鍵
0
A
回答
4
確保你對這兩個表都是using the InnoDB engine,並添加foreign-key constraint指定on delete cascade
。你的表創建SQL應該是這個樣子:
create table child_table (
parent_id int references parent_table(id) on delete cascade
) engine 'innodb';
其中child_table
和parent_table
是你的孩子和家長表的名稱。
+0
是否有可能改變我已有的表格? – aherlambang 2011-03-24 19:22:18
+0
@EquinoX當然。查看'alter table'命令或使用像HeidiSQL這樣的GUI前端。 – meagar 2011-03-24 20:36:10
0
您必須將您的外鍵約束定義爲ON DELETE CASCADE。
注意:您需要使用InnoDB存儲引擎,他默認的MyISAM存儲引擎不支持外鍵關係。
CREATE TABLE `table2` (
`id` int(11) NOT NULL auto_increment,
`name` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `ids` (`ids`)
CONSTRAINT `foreign` FOREIGN KEY (`ids`)
REFERENCES `table2` (`ids`) ON DELETE CASCADE ON UPDATE CASCADE
)
的[如何在級聯刪除在MySQL中使用?(
相關問題
- 1. 刪除外鍵
- 2. 刪除外鍵
- 3. 刪除外鍵
- 4. SQL刪除外鍵
- 5. 刪除功能試圖刪除外鍵
- 6. 刪除mysql中的主鍵
- 7. 無法刪除主鍵表
- 8. 刪除行的主鍵
- 9. 刪除所有主鍵
- 10. Yii2刪除()無主鍵
- 11. 刪除主鍵索引
- 12. 從MySQL中刪除外鍵
- 13. mysql外鍵「權限」刪除
- 14. 用外鍵刪除列
- 15. SQL外鍵刪除問題
- 16. SQL外鍵刪除級聯
- 17. 不能刪除外鍵
- 18. 刪除外鍵在Sybase 12.5
- 19. 刪除行與外鍵
- 20. 外鍵級聯刪除時
- 21. SchemaExport,NHibernate和刪除外鍵
- 22. Django模型刪除外鍵
- 23. 無法刪除外鍵(Oracle)
- 24. 無法刪除外鍵
- 25. 外鍵緩慢刪除
- 26. 刪除表的外鍵
- 27. 外鍵刪除新/建
- 28. 的Grails:級聯刪除鍵和外鍵
- 29. 刪除鍵
- 30. NSTableView +刪除鍵
可能重複http://stackoverflow.com/questions/511361/how-do-i-use-on-delete-cascade-in- mysql) – 2011-03-24 19:06:43