外键查询_详解MySQL数据库删除所有表的外键约束、禁用外键约束相关脚本
概述
数据库的外键虽然能保证数据数据一致性和完整性,但是也一定程度地影响了数据更新的性能。在开发中,我们使用PowerDesigner建立物理数据模型时,为了结构的清晰,增加可读性,会创建表与表之间的关联关系。
在实际开发中,数据库中一般不会存在外键,阿里的开发手册中也强制不使用外键与级联操作,一切外键概念必须在应用层解决。如果数据库中已存在外键了,这时候需要禁用或者删除应该怎么办呢?
1、修改MySQL变量FOREIGN_KEY_CHECKS(批量禁用启用所有表的外键)
-- 会话级别禁用外键约束SET FOREIGN_KEY_CHECKS = 0;-- 会话级别启用外键约束SET FOREIGN_KEY_CHECKS = 1;-- 全局禁用外键约束SET GLOBAL FOREIGN_KEY_CHECKS = 0;或者 SET @@GLOBAL.FOREIGN_KEY_CHECKS = 0;-- 全局启用外键约束SET GLOBAL FOREIGN_KEY_CHECKS = 1;
修改完成后可以查看修改后的结果
SELECT @@FOREIGN_KEY_CHECKS;
2、批量删除所有表的外键
查询schema中所有外键名称然后拼接生成删除语句,再执行。
SELECT CONCAT( 'ALTER TABLE ', TABLE_SCHEMA, '.', TABLE_NAME, ' DROP FOREIGN KEY ', CONSTRAINT_NAME, ' ;' ) FROM information_schema.TABLE_CONSTRAINTS c WHERE c.TABLE_SCHEMA = '数据库名' AND c.CONSTRAINT_TYPE = 'FOREIGN KEY';
觉得有用的朋友多帮忙转发哦!后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下~
外键查询_详解MySQL数据库删除所有表的外键约束、禁用外键约束相关脚本相关推荐
- mysql操作日志记录查询_详解mysql数据库参数log_timestamps--控制日志记录使用的时区...
概述 最近发现之前安装的MySQL 5.7.27,其中的error log.general log日志里面日志时间的时区不对. 思路: mysql 5.7.2新增了参数 log_timestamps, ...
- mysql临键锁_详解 MySql InnoDB 中的三种行锁(记录锁、间隙锁与临键锁)
详解 MySql InnoDB 中的三种行锁(记录锁.间隙锁与临键锁) 前言 InnoDB 通过 MVCC 和 NEXT-KEY Locks,解决了在可重复读的事务隔离级别下出现幻读的问题.MVCC ...
- mysql 外键设置_详解MySQL外键设置
MySQL外键设置是学习MySQL数据库过程中不能不提的,下面就会为您详细介绍MySQL外键设置的方法,希望对您学习MySQL外键设置方面能有所帮助. 外键的作用: 保持数据一致性,完整性,主要目的是 ...
- mysql 添加外键 完整_详解mysql添加外键的方法
本文主要向大家介绍了mysql添加外键的方法,通过具体的实例让大家了解,希望对大家学习mysql有所帮助. 为已经添加好的数据表添加外键: 语法:alter table 表名 add constrai ...
- hive replace替换多个_详解Mysql数据库中replace与replace into的用法及区别
概述 Mysql数据库replace与replace into都是经常会用到的功能:replace其实是做了一次update操作,而不是先delete再insert:而replace into其实与i ...
- mysql 编辑数据库内容_详解mysql数据库增删改操作
插入数据 insert into 表名(列名1,列名2,列名3) values(值1,值2,值3); insert into user(user_id,name,age) values(1,'nice ...
- SQL数据库不用SQL语句能显示全表的内容_详解mysql数据库sql优化技巧总结
概述 关于SQL优化的教程很多,但是比较杂乱.所以抽空整理了一下,也写出来跟大家分享一下.以下主要针对MySQL数据库,Oracle数据库也可以参考. 优化技巧总结 1.建索引 对查询进行优化,要尽量 ...
- mysql 修改时间段内_详解mysql数据库MyISAM存储引擎如何转为Innodb及其中的注意点...
概述 mysql数据库存储引擎为MyISAM的时候,在大访问量的情况下数据表有可能会出现被锁的情况,这就会导致用户连接网站时超时而返回502,此时就需要MySQL数据库MyISAM存储引擎转为Inno ...
- 详解mysql数据库的启动与终止_详解MySQL数据库的启动与终止(一)
由于MySQL服务器具有多种安装分发,而且能够运行在多种操作平台之上,因此它的启动与停止的方法也多种多样.你可以根据实际情况使用其中的一种.在你安装.升级或者维护系统时,你可能需要多次启动和终止服务器 ...
最新文章
- Windows下Eclipse和PyDev搭建完美Python开发环境
- 一维行滤波提取俯视图下的车道线特征
- 当 AI 足够聪明时,我们的验证码还有用吗?
- 动手学PaddlePaddle(0):新版本PaddlePaddle安装
- 12无法使用otg_12个冷知识:或许只能看看而无法使用,但却真实存在着
- 微软一站式示例代码库(中文版)2011-07-14版本, 新添加ASP.NET, Azure, Silverlight, WinForm等14个Sample...
- 51-表达式计算(带括号的)
- [29期] 打仗、打球、打游戏、打代码。。。
- F5刷新的时候只刷新里面的内联框架里面的页面
- SQL Server 2008支持将数据导出为脚本 / 导出单张表
- 如何用Scapy写一个端口扫描器?
- 详解Autosar Arxml中的CANFD报文及格式
- html画excel表格边框,设置Excel表格和单元格的边框和底纹 html表格单元格边框
- 基于keras实现双向GRU的中文情感分析
- Python:导出QQ聊天记录-让我们看看逗比群友都在聊什么
- 深入浅出理解 MyBatis-Plus(最新版3.5.2)
- 国际手机号码格式化 和 手机邮箱中间部分用****替换
- 轮播图进度条同步切换(参考漫威官网)
- 【Android UI】贝塞尔曲线 ② ( 二阶贝塞尔曲线公式 | 三阶贝塞尔曲线及公式 | 高阶贝塞尔曲线 )
- 力扣 2303. 计算应缴税款总额
热门文章
- java jdbc 参数_java_jdbc_可变参数_MetaData
- revit建筑样板_BIM技术在历史保护建筑中的具体应用(艾三维BIM分享)
- python 将多张大小不同的图依次放入较大的黑色背景_用户消费行为分析(Python)...
- python学习路线--从入门到入土
- (转)解决nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed错误
- SQL连接查询_ INNER JOIN
- JavaScript Oriented[探究面向对象的JavaScript高级语言特性]
- Java单例模式实现(线程安全)
- jquery 表单 清空
- 【ACM】nyoj_2_括号配对问题_201308091548