首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何处理 MySQL错误码 1215:无法添加外键约束?

本文为作者翻译文章,原文链接:Dealing with MySQL Error Code 1215: “Cannot add foreign key constraint” 在给一个表创建外键时,MySQL...总是会出现提示: ERROR 1215 (HY000): Cannot add foreign key constraint 这信息基本是啥都没说,下面就来说说几种常见的导致1215错误的情况: 父表不存在...parent(id); ALTER TABLE child ADD FOREIGN KEY (parent_id) REFERENCES parent(`id`); 父表或者父表中相关列的名字写错了错误...REFERENCES pariente(id); 正确: ALTER TABLE child ADD FOREIGN KEY (parent_id) REFERENCES parent(id); 父列和列数据类型不一致...(10), FOREIGN KEY (parent_column_3) REFERENCES `parent`(`column_3`) ) ENGINE INNODB; 父表和子表表(列)的字符集

20.6K21
您找到你想要的搜索结果了吗?
是的
没有找到

MySQL 常见错误代码说明

最后修改密码命令如下: mysql> use mysql; mysql> update user set password=password("123456") where user="root"; 再删除刚刚添加的...7.从库的 Slave_IO_Running 为 NO问题 问题分析:造成从库线程为 NO 的原因会有很多,主要原因是主键冲突或者主库删除更新数据, 从库找不到记录,数据被修改导致。...通常状态码报错有 1007、1032、1062、1452 等。...mysql> CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.xxx',MASTER_LOG_POS=xxx; 维护过MySQL的运维DBA都知道,经常会遇到的一些错误信息中有一些类似...,请增大可用的数据库连接数重启数据库 1205:加锁超时 1211:当前用户没有创建用户的权限 1216:外键约束检查失败,更新子表记录失败 1217:外键约束检查失败,删除修改主表记录失败 1226

2.3K50

MySQL 常见错误代码说明

7.从库的 Slave_IO_Running 为 NO问题 问题分析:造成从库线程为 NO 的原因会有很多,主要原因是主键冲突或者主库删除更新数据, 从库找不到记录,数据被修改导致。...通常状态码报错有 1007、1032、1062、1452 等。...mysql> CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.xxx',MASTER_LOG_POS=xxx; 维护过MySQL的运维DBA都知道,经常会遇到的一些错误信息中有一些类似...1024:读文件错误 1025:更改名字时发生错误 1026:写文件错误 1032:记录不存在 1036:数据表是只读的,不能对它进行修改 1037:系统内存不足,请重启数据库重启服务器 1038:...,请增大可用的数据库连接数重启数据库 1205:加锁超时 1211:当前用户没有创建用户的权限 1216:外键约束检查失败,更新子表记录失败 1217:外键约束检查失败,删除修改主表记录失败 1226

1.5K21

MySQL数据库常见报错案例与错误代码说明

为 NO 问题 问题分析:  造成从库线程为 NO 的原因会有很多,主要原因是主键冲突或者主库删除更新数据, 从库找不到记录,数据被修改导致。  ...通常状态码报错有 1007、1032、1062、1452 等。...问题分析: 数据库服务器问题,数据库操作无法创建新线程。一般是两个原因:  1.服务器系统内存溢出。  2.环境软件损坏系统损坏。...Mysql常见错误代码说明: 130 :文件格式不正确 145 :文件无法打开 1005:创建表失败 1006:创建数据库失败 1007:数据库已存在,创建数据库失败 1008:数据库不存在,删除数据库失败...,请增大可用的数据库连接数重启数据库 1205:加锁超时 1211:当前用户没有创建用户的权限 1216:外键约束检查失败,更新子表记录失败 1217:外键约束检查失败,删除修改主表记录失败 1226

1.8K21

技术译文 | MySQL 8 中检查约束的使用

这是一项新功能,用于指定在插入更新到一之前检查值的条件。如果表的任何的搜索条件的结果为 FALSE,则约束可能返回错误(但如果结果为 UNKNOWN TRUE,则约束不会返回错误)。...插入更新被跳过。 看一些例子 我创建了下表来测试此功能。..., gender ENUM('M', 'F') not null, primary key (id) ) engine = innodb; 在这个简单的测试中,仅当 age > 15 时,我们才能写入更新...如您在 ERROR 消息中所见,MySQL 正在显示 CHECK 约束名称。可以从应用程序源代码中使用它来调试错误并知道从哪个 CHECK 失败。...,但是根据我以前作为程序员的经验,我不建议在表中添加逻辑,因为除非您无法访问应用程序代码,否则很难找到调试错误

1K20

Mysql外键约束

外键主要用来保证数据的完整性和一致性 两个表必须是InnoDB表,MyISAM表暂时不支持外键 外键列必须建立了索引,MySQL 4.1.2以后的版本在建立外键时会自动创建索引,但如果在较早的版本则需要显示建立...CASCADE: 从父表中删除更新对应的,同时自动的删除更新自表中匹配的。ON DELETE CANSCADE和ON UPDATE CANSCADE都被InnoDB所支持。 2....SET NULL: 从父表中删除更新对应的,同时将子表中的外键列设为空。注意,这些在外键列没有被设为NOT NULL时才有效。...article`, CONSTRAINT `fk_1` FOREIGN KEY (`category_id`) REFERENCES `category` (`id`)) (3)从表article中,添加不存在的...category_id:insert into article(category_id,name) values(2,'分类2') 会报错: #1452 - Cannot add or update a

5.8K81

MySQL入门详解(二)---mysql事务、锁、以及优化

共享锁(读锁)与独占锁(写锁,排他锁),表级锁引擎:MyISAM MEMORY 共享锁:在读的时候上锁,所有人都可以访问不阻塞其他用户对同一表读请求,但阻塞同一表的写操作包括自己;自己如果加了读锁,更新访问其他表会提示错误...;加了读锁之后不能再加写锁 独占锁:上锁之后其他人不能访问,阻塞其他用户对同一表的读和写操作,独占锁优先级别高于共享锁;自己加了写锁可以读写表中记录,但更新访问其他表都会提示错误 MyISAM在执行查询语句时会自动给涉及的所有表加读锁...FOR UPDATE #主动添加独占锁(X) #释放锁 commit; rollback; 当使用排他锁写数据时,其他人无法操作本条数据; 当给一条数据添加了排它锁,其他人对这条数据没有任何权限,...select_type 查询中每个select子句的类型 SIMPLE:简单SELECT(不使用UNION查询) PRIMARY:最外面的SELECT UNION:UNION中的第二个后面的SELECT...SUBQUERY:查询中的第一个SELECT,取决于外面的查询 DERIVED:派生表(FROM子句的查询) #table 本次查询的表名,派生表 #type mysql在表中的访问类型 ALL

1.1K50

MySQL8.0.30 release note 中文翻译(详细版)

SQL语法说明 现在可以确定无法执行的REVOKE语句是否会引发错误警告。这是通过增加两个新的语句选项来实现的,这里列出了简单的描述。...(Bug #34302445) InnoDB:在有即时添加列的表上,错误的nullable列计算导致数据被错误地解释。...(Bug #34239456) MySQL服务器在最新版本的Visual Studio 2022中无法编译。...在这种情况下,来自当前最后一查询的评估值被保存,因此不需要重新评估,但在执行之间没有清除缓存值(result_for_null_param),因此下一次执行可以重新使用前一次执行的结果。...这样做的一个后果是,当一个查询的执行首先导致查询中的零匹配--对于一个ALL谓词来说应该返回TRUE--随后的执行导致至少有一匹配,也会返回TRUE,尽管预期是FALSE。

1.9K10

谁再说学不会 MySQL 数据库,就把这个给他扔过去!

DBMS 的重要性 无法多人共享数据 无法提供操作大量数据所需的格式 实现读取自动化需要编程技术能力 无法应对突发事故 DBMS 的种类 层次性数据库 最古老的数据库之一,因为突出的缺点,所以很少使用了...复制过程中一个服务器充当主服务器,而一个多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新。...关键时能帮你快速解决数据库瓶颈 MySQL 常见错误代码说明 先给大家看几个实例的错误分析与解决方案。...通常状态码报错有 1007、1032、1062、1452 等。...mysql> CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.xxx',MASTER_LOG_POS=xxx; 维护过MySQL的运维DBA都知道,经常会遇到的一些错误信息中有一些类似

64820

iOS14适配【解决UITableViewCell兼容问题(往cell添加视图的方式不规范)】

I、问题分析 iOS14 UITableViewCell的试图不能点击或者滑动等手势响应问题,发现有问题的cell基本都是直接 cell.addSubView(tempView1) 这种方式添加的,通过...(0 0; 0 0); userInteractionEnabled = NO; layer = > 1.1 注意事项 因为此问题涉及的是添加视图...例如125个文件的1452个地方使用错误的方法,这个如果不使用hook高质工作量有点大 ?...所以通过Runtime hook cell的addSubView 方法强制修改为正确的添加cell 视图的方式 2.1 全局修改 只允许添加 UITableViewCellContentView,其余都直接添加到...[self.contentView addSubview:view]; } } @end 2.2 注意事项 因为此问题涉及的是添加视图

2.5K20

MySQL索引

主键索引的建立,是在规范化创建表的时候就自动添加了 实例(建表时添加mysql> create table test(id int(4) not null auto_increment,name char...最外面的select,在有查询的语句中,最外面的select查询就是primary union union语句的第二个或者说是后面那一个 dependent union  UNION中的第二个后面的...SELECT语句,取决于外面的查询 union result  UNION的结果,如上面所示 在SELECTWHERE列表中包含了查询,该查询被标记为:SUBQUERY 还有几个参数,这里就不说了...Using where   表示mysql服务器将在存储引擎检索后再进行过滤。...如果出现了这个值,那应该注意,根据查询的具体情况可能需要添加索引来改进能。 f. Impossible where   这个值强调了where语句会导致没有符合条件的。 I.

3.8K50

mysql的建表语句_mysql如何查询建表语句

MySQL之建表语句 mysql安装教程见博客:MySQL 7.7.25 图文安装教程(Win10) 本篇博客以学生表、课程表以及学生-课程表为例,讲解mysql常用的建表语句。 1....,再添加外键列)。...当插入的数据违反了这个规则,就会产生ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint fails.../*取消外码约束*/ set foreign_key_checks = 0; /*删除更新数据*/ delete/update from 表名 where 条件; /*恢复外码约束*/ set foreign_key_checks...最后,补充一个小知识:在很多大型大型公司中,包括阿里在内,都是不建议使用外码约束的,原因是在外码约束的的前提下,删除和更新数据操作会很痛苦。

8.3K20

MySQL学习笔记(长期更新

插入:插⼊⼀条部分字段数据记录是可以的,但前提是,没有赋值的字段,⼀定要让MySQL知 道如何处理,⽐如可以为空、有默认值,或者是⾃增约束字段,等等,否则,MySQL会提⽰错误的。...FROM:其后可以跟表查询结果(派生表/查询),意思是将查询的数据当作一个虚拟的数据表来看待,需要使用AS关键字对派生表进行取名。 ORDER BY:对查询结果排序,ASC升序、DESC降序。...查询按返回结果集进行分类: 表查询:返回的结果是一个的集合,NN列,(N>=1)。表查询经常用于父查询的FROM子句中。 查询:返回的结果是一个列的集合,一N列,(N>=1)。...查询常用于父查询的FROM字句和WHERE字句中。 列子查询:返回的 结果是一个的集合,N一列,(N>=1)。 标量子查询:返回的结果集是一个标量集合,一一列。...错误日志 错误日志记录了MySQL服务启动、停止的时间,以及系统启动、运行和停止过程中的诊断信息,包括错误、警告和提示。 二进制日志 主要记录数据的更新事件。

92910

MySQL中DML语句和事务的概念「建议收藏」

(SELECT sum(amount) FROM penalties)); 注意:查询必须放在单独的小括号中 7.一条INSERT语句可以插入多个 示例:添加4个新的球队 INSERT...penalties表中 也可以把本表中的再次添加到本表中。...) 补充:IGNORE选项用于当UPDATE语句出错时,不显示错误消息 7.update更新多个表中的值 更新多个表中的值 MySQL允许我们使用1条UPDATE语句就更新两个多个表中的 语法...当添加新行时,如果主键值重复,那么就覆盖表中已有的。...语句,它比DELETE快得多 原理:将表行尾的指针直接指向0,这样mysql认为该表数据已经清空,真实数据未清空,mysql后台程序自动清理代表的数据 语法: TRUNCATE [TABLE]

1.6K20
领券