MySQL主键外键的动画
遵循RDBMS的最佳实践时,在设计数据库以创建和强制执行引用完整性时要始终使用主键,这是数据质量和正确的关系数据库设计的主要要求。在本教程中,我们提供有关主键及其功能的背景信息,并提供代码示例来说明该...
2024.11.20数据库的外键虽然能保证数据数据一致性和完整性,但是也一定程度地影响了数据更新的性能。在开发中,我们使用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方面的内容,感兴趣的朋友可以关注下~
遵循RDBMS的最佳实践时,在设计数据库以创建和强制执行引用完整性时要始终使用主键,这是数据质量和正确的关系数据库设计的主要要求。在本教程中,我们提供有关主键及其功能的背景信息,并提供代码示例来说明该...
2024.11.20MySQL 的外键约束注意,MySQL 的 InnoDB 表引擎才支持外键关联,MyISAM 不支持。MySQL 还支持手动打开或关闭外键约束:SET FOREIGN_KEY_CHECKS = 0/1...
2024.11.20关于MySQL索引相关的内容,一直是一个让人头疼的问题,尤其是对于初学者来说。笔者曾在很长一段时间内深陷其中,无法分清“覆盖索引,辅助索引,唯一索引,Hash索引,B-Tree索引……”到底是些什么东...
2024.11.21概述今天主要看下innodb是怎么去设计主键索引的,这里引用了一个淘宝MySQL数据库经典案例。innodb 主键索引在Innodb中,聚簇索引默认就是主键索引。如果没有主键,则按照下列规则来建聚簇索...
2024.11.18前言:有时候我们会遇到重命名表的需求,比如说因业务变化,需要将表 a 重命名为表 b 。这个时候可以执行 rename TABLE 语句或 ALTER TABLE 语句来重命名表。本篇文章我们一起来学...
2024.11.20