嗨我正在使用mysql5 innoDB數據庫。我想強制刪除父行及其相關子表數據的數據。我怎樣才能做到這一點。任何人都可以幫助我。如何從mysql5父表中刪除數據?
1
A
回答
6
如果您使用innodb,您可以使用FOREIGN KEY CONSTRAINTS級聯刪除,當您刪除父行時,孩子也將被刪除。
查看更多http://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints.html
另一種方法是刪除使用多個數據表的語法。 看看http://dev.mysql.com/doc/refman/5.1/en/delete.html
最後的辦法是在刪除動作後使用觸發器。 看看http://dev.mysql.com/doc/refman/5.1/en/trigger-syntax.html
你也可以使用順序刪除語句,但在這種情況下,你應該使用事務。注意:這個只適用於innodb表格。連續
0
兩個刪除會做的伎倆:如果您正在使用外鍵約束
delete from ChildTable where ParentID = ?
delete from ParentTable where ID = ?
0
,那麼你可以刪除梯級利用條款,同時創建一個子表從父刪除行表,那麼它也會從子表中刪除相應的主鍵行。
如果要從父表中刪除行,而不是從子表中刪除對應的主鍵行,則在刪除級聯時使用null創建子表時的子句。
例如:創建一個名爲「學生」父表和子表稱爲「庫」
create table student(sno integer(5) primary key,sname varchar(20));
insert into student values(1,"suman");
insert into student values(2,"sai");
insert into student values(3,"saaaa");
create table library(sno integer(5) references primary key(sno) on delete cascade,book_name varchar(20));
insert into student values(1,"c");
insert into student values(2,"JAVA");
insert into student values(3,"ORACLE");
現在從父表
delete from student where sno=2;
那麼它會刪除刪除第二行子表中相應的行(2 JAVA)。因爲您只使用「on delete cascade」子句。
如果您正在使用刪除級聯null,則它將只從父表中刪除行(2 Sai)。
:) :) :) :) :) :) :) :) :) :)
相關問題
- 1. 如何從子表中刪除從父表中刪除的行?
- 2. 如何刪除mysql5中的數據庫的所有程序
- 3. MySQL。從父表中刪除並且不從子表中刪除數據
- 4. 如何從父表中刪除一行而不從Child表中刪除一行?
- 5. 從表中刪除數據
- 6. javascript如何從onclick中刪除父div
- 7. 如何從數據庫表中刪除所有數據?
- 8. 如何從raw_contact和數據表中刪除數據?
- 9. 如何從數據透視表中刪除「數據」標題
- 10. 從表中刪除後從數據庫中刪除ADF
- 11. PostgreSQL只從父表中刪除
- 12. 從PLSQL的父表程序中刪除
- 13. 從它的父母中刪除圖表
- 14. 從父表中刪除學說記錄
- 15. 如何從數據庫中刪除「」值
- 16. 如何從標籤中刪除數據
- 17. 如何從json數據中刪除\
- 18. 如何從數據庫中刪除?
- 19. 如何從MemoryStream中刪除數據
- 20. 如何從數據框中刪除行?
- 21. 如何從視頻中刪除數據?
- 22. 如何從數據集中刪除
- 23. 如何從Firebase中刪除數據庫?
- 24. 如何從SQL數據庫中刪除
- 25. 如何從sqlite中刪除數據
- 26. 如何刪除子表中的數據?
- 27. 如何批量搜索MySQL5數據庫?
- 28. 如何從DOM中刪除子元素時刪除父元素?
- 29. 從xmlDoc中刪除節點,如何刪除父節點?
- 30. 熊貓:如何根據列表從數據框中刪除行?
這是如果表引擎不不支持'國外keys' – ty812
所有表引擎的方法支持外鍵,我會使用觸發器,這樣我就不必考慮它了。 – Johan