十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
你是要做级联删除子表,还是单单只删除主表的值?
在富顺等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都做网站、成都网站制作 网站设计制作定制网站建设,公司网站建设,企业网站建设,品牌网站制作,营销型网站建设,外贸网站建设,富顺网站建设费用合理。
比如说有两个表 father,son
做级联删除的话,可以这么做,
delete father,son from father inner join son on father.id=son.fatherid where father.id=?
或者你可以在建son表的时候 指定约束扩展项,on delete casecade on update
如果只是单单需要删除主表,那么最简单的做法是取消系统外键约束
set foreign_key_checks=off
然后尽情去删把
有外键的情况下一般要先关掉外键的作用,然后删除,在开启。以为有外键的表一般不能删除的。如果是mysql数据库的话
先关闭外键
SET FOREIGN_KEY_CHECKS=0;
然后删除
在开启
SET FOREIGN_KEY_CHECKS=1;
SET @a=(SELECT CONSTRAINT_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE CONSTRAINT_NAME IN (SELECT CONSTRAINT_NAME FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS) and TABLE_NAME='Operation' and COLUMN_NAME='resNo' limit 0,1 );
SET @s = CONCAT("alter table Operation drop foreign key ", @a);
PREPARE stmt FROM @s;
execute stmt;
创建一个表: create table users( username varchar(15) not null Primary Key, userpass varchar(15) not null ); 插入一条记录: insert into users values('user1','pass1'); 再创建一个表: create table roles( username varchar(15) not null references users(username), rolename varchar(15) ); 再插入一条记录: insert into roles values('dd','ddd');