有时候需要删除数据表,提示因为设置了foreign key,无法修改删除 ,
此时有两种解决方法:
一、先删除引用外键的表,再删除作为外键的表
二、可以通过设置 FOREIGN_KEY_CHECKS 变量来避免这种情况。
两种方法可以,但有时,数据结构或者外键引用比较复杂时推荐用第二种方法
具体步骤:
- 设置 SET FOREIGN_KEY_CHECKS=0;
- 删除,更新数据,
- 恢复外键 SET FOREIGN_KEY_CHECKS=1;
另:查看当前 FOREIGN_KEY_CHECKS的值 SELECT @@FOREIGN_KEY_CHECKS;
图示:
另外附上,mysql数据表设置外键的一种方式:
create table class(
id int unsigned auto_increment primary key not null,
name varchar(20) not null
);
create table students(
id int unsigned auto_increment primary key not null,
class_id int unsigned,
foreign key (class_id) references class(id), #设置外键
name varchar(20) not null
);