mysql 设置外键约束SET FOREIGN_KEY_CHECKS=1

mysql 设置外键约束SET FOREIGN_KEY_CHECKS=1

大家好,又见面了,我是全栈君。

1.问题描述:Mysql中如果表和表之间建立的外键约束,则无法删除表及修改表结构

解决方法:

在Mysql中取消外键约束: SET FOREIGN_KEY_CHECKS=0;

然后将原来表的数据导出到sql语句,重新创建此表后,再把数据使用sql导入,

然后再设置外键约束: SET FOREIGN_KEY_CHECKS=1;
 

2. MySQL 5.1.48 导入 MySQL 5.7.18 时遇到 T FOREIGN_KEY_CHECKS = 0 错误的解决方法

#1064 – You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘T FOREIGN_KEY_CHECKS = 0’ at line 1

经查询,这个是 mysql 启动和关闭外键约束的方法,去掉即可。

编辑数据库文件:

//去掉此行
SET FOREIGN_KEY_CHECKS = 0;

//去掉此行
SET FOREIGN_KEY_CHECKS = 1;

然后重新导入即可。

3.查看当前FOREIGN_KEY_CHECKS的值可用如下命令

SELECT  @@FOREIGN_KEY_CHECKS;

4.外键使用实例

  CREATE TABLE cities
  (
     name VARCHAR(90),
     state CHAR(2) REFERENCES states   
  ) ENGINE = InnoDB; 
  -- Query OK, 0 rows affected (0.05 sec)
 
  -- Let's see DDL 查看表结构
  SHOW CREATE TABLE cities;  
 
  -- It does not have FOREIN KEY constraint 此时没有外键约束
  CREATE TABLE `cities` (
  `name` varchar(90) DEFAULT NULL,
  `state` char(2) DEFAULT NULL
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

You have to use FOREIGN KEY clause in CREATE TABLE to specify a foreign key in MySQL:
//您必须在CREATE TABLE中使用外键子句来指定MySQL中的外键:

  DROP TABLE IF EXISTS cities; #删除原来创建的表
 
  CREATE TABLE cities
  (
     name VARCHAR(90),
     state CHAR(2),
     FOREIGN KEY (state) REFERENCES states(abbr) 
  ) ENGINE = InnoDB;   
 
  -- Let's see DDL now
  SHOW CREATE TABLE cities;  
 
  -- Now the table has FOREIGN KEY  现在表中有了外键
  CREATE TABLE `cities` (
    `name` varchar(90) DEFAULT NULL,
    `state` char(2) DEFAULT NULL,
    KEY `state` (`state`),
    CONSTRAINT `cities_ibfk_1` FOREIGN KEY (`state`) REFERENCES `states` (`abbr`)
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

mysql 设置外键约束SET FOREIGN_KEY_CHECKS=1

mysql 设置外键约束SET FOREIGN_KEY_CHECKS=1

mysql 设置外键约束SET FOREIGN_KEY_CHECKS=1

 mysql 设置外键约束SET FOREIGN_KEY_CHECKS=1

 

参考:SET FOREIGN_KEY_CHECKS命令

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111489.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【Redis】Redis配置文件详解

    【Redis】Redis配置文件详解一、存放位置linux下一定要养成备份配置文件的习惯。我是将配置文件拷贝至/myredis目录下进行操作的;二、Units单位这个在配置文件开始位置1.配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit;2.对大小写不敏感。三、INCLUDES1.和Struts2配置文件类似,可以通过includes包含,redis.c…

    2022年6月7日
    54
  • RRC信令过程概述

    RRC信令过程概述1RRC 协议功能为 NAS 层提供连接管理 消息传递等服务 对接入网的底层协议实体提供参数配置的功能 负责 UE 移动性管理相关的测量 控制等功能 2 nbsp RRC 状态 RRC IDLE nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp PLMN 选择 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp NAS 配置的 DRX 过程 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 系统信息广播和寻呼 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp 邻小区测量 nbsp nbsp nbsp nbsp

    2025年9月18日
    4
  • 笔记本没有声音,f1一直亮_为什么笔记本按f1不静音

    笔记本没有声音,f1一直亮_为什么笔记本按f1不静音某个平凡的晚上,博主正准备听会儿音乐却发现怎么也打不开声音,通知键盘左上的F1健一直亮着。几经搜寻终找到如下解决方案:win+r出对话框,然后输出services.msc后会出现如下的界面,然后找到LenovoHotkeyClientLoader,点进去选择重启然后再按F1灯就灭了,还能外放了以上只是经过本人试验的有效方法之一,大家可在遇到类似情况时试一试,有其他更好方法的朋友欢迎在评论区补充。…

    2025年11月22日
    4
  • python如何抛出异常_python自定义异常

    python如何抛出异常_python自定义异常python抛出异常的完整写法

    2022年10月18日
    6
  • spinner:获取选中值的三种方法

    spinner:获取选中值的三种方法

    2021年9月30日
    135
  • 官场迷情–横刀灬一笑[通俗易懂]

    官场迷情–横刀灬一笑[通俗易懂]无业游民沈宜修偷瞄上小loli依琳,而他的宅女老婆秋叶却毫不知情。一次偶然的机会,沈宜修见识了美女市长苏静美的风情万种。沈宜修也开始了在依琳、静美和秋叶之间的周旋。此时事业也有所发展的沈宜修,却被美女主编林曼琴给剽窃,想要讨回公…

    2022年6月11日
    36

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号