如何删除MYSQL5从父表中的数据?

嗨,我使用MYSQL5 InnoDB数据库的。 我想强行删除父行和其相关的子表数据的数据。 我怎样才能做到这一点。 任何一个可以帮助我。

--------------解决方案-------------

如果您使用的InnoDB当您删除父行的孩子们也将被删除,你可以使用级联删除外键约束。

查看更多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表这一项才起作用。

两个删除一行会做的伎俩:

delete from ChildTable where ParentID = ?
delete from ParentTable where ID = ?

如果您正在使用外键约束,则可以在级联删除条款,同时创建一个子表从父表中删除行使用,那么它会删除从子表中相应的主键行也。

如果你想只从父表不从子表对应的主键的行删除一行然后删除级联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)。 因为你使用了​​“级联删除”只能条款。

sippose如果您正在使用级联删除空那么它只会从父表行(西2)。

:) :) :) :) :) :) :) :) :) :)

分类:MySQL的 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.059 (s). 10 q(s)