MySQL 如何删除有外键约束的表数据

有时候需要删除数据表,提示因为设置了foreign key,无法修改删除 ,
此时有两种解决方法:
一、先删除引用外键的表,再删除作为外键的表
二、可以通过设置 FOREIGN_KEY_CHECKS 变量来避免这种情况。

两种方法可以,但有时,数据结构或者外键引用比较复杂时推荐用第二种方法

具体步骤:

  1. 设置 SET FOREIGN_KEY_CHECKS=0;
  2. 删除,更新数据,
  3. 恢复外键 SET FOREIGN_KEY_CHECKS=1;
    另:查看当前 FOREIGN_KEY_CHECKS的值 SELECT @@FOREIGN_KEY_CHECKS;

图示:
MySQL 如何删除有外键约束的表数据_第1张图片
MySQL 如何删除有外键约束的表数据_第2张图片
MySQL 如何删除有外键约束的表数据_第3张图片
另外附上,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
);

原文链接:https://www.cnblogs.com/fu-yong/p/9776937.html

你可能感兴趣的:(数据库)