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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • cad2016新手入门教程_cad制图初学入门教程

    cad2016新手入门教程_cad制图初学入门教程关注公众号,免费获取资料​​适用人群没有基础却想要学习CAD的学员课程概述课程目标:快速学习CAD绘图设计课程特色:完全脱离理论与书,纯实例教学章节1:开篇课时1重要的开篇01:02章节2:AutoCAD软件介绍课时2软件介绍06:12章节3:AutoCAD界面布局课时3界面布局介绍06:22章节4:AutoCAD操作步骤课时…

    2022年8月29日
    2
  • Vue生命周期(11个钩子函数)「建议收藏」

    Vue生命周期生命周期初识生命周期详解(八个钩子函数)生命周期生命周期:Vue是一个构造函数,当执行执行这个函数时,相当于初始化vue实例;在创建实例过程中,需要设置数据监听,编译模板,将实例挂载到DOM上,数据更新能够让DOM也更新,在这个初始化,又会不同阶段默认调用一些函数执行,这些函数就是生命周期的钩子函数;生命周期钩子函数生命周期钩子函数,让够让咱们…

    2022年4月6日
    143
  • Spring Boot Configuration Annotation Processor not found in classpath解决方法

    版权声明: 这是我在学习SpringBoot入门中遇到的第一个问题,其实就是说提示的classpath中找不到,查询此注解的使用关系怎么指定classpath。如果是配置在application.properties下的,Spring默认在加载的时候就会转到容器里面。所有说问题很简单:解决方案: 其实这个可能就是你没有在maven中导入自动装配映射的依赖包 <!– …

    2021年11月30日
    43
  • Oracle、plsql安装以及使用教程「建议收藏」

    Oracle、plsql安装以及使用教程「建议收藏」Oracle安装Oracle(11g)数据库安装详细图解教程plsql安装PLSQL下载、安装、配置、连接详细教程创建数据库注意略过关于监听配置的所有部分Oracle创建数据库实例plsql连接数据库如下所示,按照上述步骤完成安装创建之后,只需要在database前面加个127.0.0.1/你创建的数据库即可建表点击file->new->table之后根据需要创建数据库即可…

    2022年5月30日
    36
  • 流水线设计思想_全自动流水线

    流水线设计思想_全自动流水线在硬件电路设计中,流水线设计思想是一种很重要的设计思想,这种思想是一种用面积换速度的思想,用更多的资源来实现高速。(面积就是需要的硬件数量,如触发器的数量)顾名思义,流水线思想,就像工厂中的流水线一样。假设是一个手机组装的流水线,一个三个步骤:A,将电池装入手机起来;B,将屏幕组装起来;C,将外壳组装起来。在上面的三个步骤中,流水线的实现就是:A步骤实现后,将手机发往B,然后A继续组装电池,而不会等待C完成再组装;B和C也是一样。流水线思想就是自己完成自己的功能,不会等待。这在硬件电路中就是一种并行的

    2022年8月14日
    1
  • MD编辑器设置字体、颜色、大小

    MD编辑器设置字体、颜色、大小颜色:浅红色文字:浅红色文字:深红色文字:深红色文字浅绿色文字:浅绿色文字深绿色文字:深绿色文字浅蓝色文字:浅蓝色文字深蓝色文字:深蓝色文字浅黄色文字:浅黄色文字深黄色文字:深黄色文字浅青色文字:浅青色文字深青色文字:深青色文字浅紫色文字:浅紫色文字深紫色文字:深紫色文字大小:size为1:size为1size为2:size为2size为3:size为3size为4:size为4size为10:size为10字体:我是黑体字我是宋体字我是微软雅黑字我是fanta

    2022年9月15日
    0

发表回复

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

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