首页
学习
活动
专区
工具
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`); 父表或者父表中相关列的名字写错了错误...:因为父表column_1列没有任何索引 CREATE TABLE child ( id INT(10) NOT NULL PRIMARY KEY, parent_column_1 INT(10),...parent_virt INT(10) NOT NULL, FOREIGN KEY (parent_virt) REFERENCES parent(column_virt) ) ENGINE INNODB; 创建失败的更多提示信息

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

MySQL8 中文参考(二)

1.6.2.3 约束的差异 MySQL 对外约束的实现与 SQL 标准以下关键方面有所不同: 如果父表中有多行具有相同的引用键值,InnoDB会像其他具有相同键值的父行不存在一样执行检查...插入、删除或更新多行的 SQL 语句中,约束(如唯一约束)会逐行检查。执行检查时,InnoDB会在必须检查的子记录或父记录上设置共享的行级锁。...SQL 标准中的MATCH子句控制如何处理复合(多列)中的NULL值,当与引用表中的主键进行比较时。MySQL 基本实现了MATCH SIMPLE定义的语义,允许全部或部分为NULL。...1.6.3 MySQL 如何处理约束 原文:dev.mysql.com/doc/refman/8.0/en/constraints.html 1.6.3.1 主键和唯一索引约束 1.6.3.2 约束...或 UPDATE)可能违反主键、唯一约束而导致错误

12010

Mysql错误代码大全

1016错误:文件无法打开,使用后台修复或者使用phpmyadmin进行修复。...提交事务失败 1181:回滚事务失败 1203:当前用户和数据库建立的连接已到达数据库的最大连接数,请增大可用的数据库连接数或重启数据库 1205:加锁超时 1211:当前用户没有创建用户的权限 1216:约束检查失败...,更新子表记录失败 1217:约束检查失败,删除或修改主表记录失败 1226:当前用户使用的资源已超过所允许的资源,请重启数据库或重启服务器 1227:权限不足,您无权进行操作 1235:MySQL...MYSQL当前用户和数据库建立的连接已到达数据库的最大连接数,请增大可用的数据库连接数或重启数据库 1205:MYSQL加锁超时 1211:MYSQL当前用户没有创建用户的权限 1216:MYSQL约束检查失败...,更新子表记录失败 1217:MYSQL约束检查失败,删除或修改主表记录失败 1226:MYSQL当前用户使用的资源已超过所允许的资源,请重启数据库或重启服务器 1227:MYSQL权限不足,您无权进行操作

4.6K40

MySQL与复制系统的相遇的挑战与应对

通过,我们可以不同的表之间建立关系,并且确保数据的完整性不会因为错误的操作而受损。 与复制的冲突 在有约束的情况下进行MySQL复制可能会遭遇一些问题。...下面是两个常见的问题场景: 异步复制延迟:异步复制中,从服务器可能会落后于主服务器。如果在主服务器更新或删除了某些行,而这些行的在从服务器还没有得到更新,那么可能会出现复制错误。...约束检查失败:在从服务器应用变更时,如果相关的数据尚未到位,可能会导致约束检查失败,从而使复制进程暂停。...使用GTID复制:GTID复制提供了更好的事务一致性保证,可以帮助解决由于约束导致的复制问题。 监控和警告:建立有效的监控和警告系统,以便在出现复制错误时及时得知,并采取相应的修复措施。...实际操作中,可能需要根据具体的应用场景和需求,综合考虑如何处理和复制的关系,以达到最佳的系统性能和数据一致性。

19020

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

注意:以上两种修复方式执行前一定要备份数据库。...解决方法: 1)修改 my.cnf 主配置文件, [mysqld] 下添加 skip-grant-tables,重启数据库。...max_connections= 1000  wait_timeout = 10  修改后重启 MySQL ,如果经常性的报错误,需做一下服务器的整体优化。...提交事务失败 1181:回滚事务失败 1203:当前用户和数据库建立的连接已到达数据库的最大连接数,请增大可用的数据库连接数或重启数据库 1205:加锁超时 1211:当前用户没有创建用户的权限 1216:约束检查失败...,更新子表记录失败 1217:约束检查失败,删除或修改主表记录失败 1226:当前用户使用的资源已超过所允许的资源,请重启数据库或重启服务器 1227:权限不足,您无权进行操作 1235:MySQL

1.9K21

MySQL学习笔记汇总(四)——表的约束、存储引擎、事务

一、表的约束 创建表的时候,可以给表的字段添加相应的约束添加约束的目的是为了保证表中数据的合法性、有效性、完整性。...(简称PK) 约束(foreign key):…(简称FK) 检查约束(check):注意Oracle数据库有check约束,但是mysql没有,目前mysql不支持该约束。...username varchar(255) ); 约束:foreign key 主要是维护表之间的关系的,主要是为了保证参照完整性,如果表中的某个字段为 字段,那么该字段的值必须来源于参照的表的主键...可以为NULL 被引用的字段不一定是主键,但至少具有unique约束。...表的结构存储xxx.frm文件中 数据存储tablespace这样的表空间中(逻辑概念),无法被压缩,无法转换成只读。 这种InnoDB存储引擎MySQL数据库崩溃之后提供自动恢复机制。

1.6K50

MySQL 系列】MySQL 语句篇_DDL 语句

表的约束有主键、、CHECK、UNIQUE 等; ENGINE=storage_engine 子句指定了表使用的存储引擎。它是可选的。如果不指定选项,则采用服务器默认的存储引擎。...我们需要同步修改的代码可能包括那些使用了表的:存储过程、视图、函数、触发器、约束较旧的 MySQL 版本中)以及应用程序。...约束经常和主键约束一起使用,用来确保数据的一致性。...你也不能为一个城市设定一个不存在的 country_id,否则这个城市数据就是错误的。 3.2.1、创建 通常,所属的表被称作子表,被引用的表被称作父表。...3.2.2、添加 如果建表的时候没有定义,你也可以后来通过以下语法添加: ALTER TABLE child_table_name ADD [CONSTRAINT foreign_key_name

13410

数据库设计工具MySQLWorkBench

该工具为MySQL官方提供地址:http://dev.mysql.com/downloads/workbench/ 小伙伴们注意按自己的操作系统选择下载版本。...注意事项: 1)此处不要手动加入字段。稍后介绍ER图时,通过工具自动添加字段。...2.用来添加表(与MySQLModel选卡添加相同) 3./4.添加“1对1”、“1对多”的ER关系。 操作:按下“—1:1/—1:n”按钮,选择要建立的表,再选择关联的主键所在表。...操作完成后,表中会自动生成命名规则自动为 “表名_主键名”。 5.可以拖拽表到右侧视图中。已经视图中的表,6.位置会有实心点标记。...注意:导出前应去掉表名的中文说明,同时自己本地检验SQL文正确性后,再交由运维部署到测试服务器。 1. 可以新建、管理对MySQL库的链接; 2. 是已经创建好的链接。

1.3K20

MySQL 入门、安装和客户端管理工具

关系型数据库管理系统可以简称为关系型数据库,具备以下特点: 数据存储在数据表中,比如文章表、用户表; 数据表的行表示一条记录,比如一篇文章或一个用户的所有信息; 数据表的列表示相同类型的数据,比如文章标题、用户名等; 数据表存在主键、...、索引等结构,主键可以唯一标识一条记录、可以与其他表的列建立关联关系、索引可用于加速数据表记录的查询; 行和列构建出数据表,多张数据表汇聚成数据库。...PHP 也是一对好基友,PHP 原生对 MySQL 有着非常好的支持,世界最流行的 Web 开发语言 + 世界最流行的关系型数据库,简直是珠联璧合,也由此诞生了很多知名的应用。...MySQL Workbench 连接列表 然后就可以连接列表中点击 laradock 进入本地 MySQL 数据库管理页面了: ?...PhpStorm 选择数据源 弹出窗口配置 MySQL 连接信息(Docker 容器),配置完成后别忘了点击页面底部「下载缺失驱动文件」,否则无法建立连接: ?

6.2K20

MySQL约束使用

什么是约束MySQL中,约束用于确保两个表之间的数据一致性。约束是一种限制,它将一个表中的列与另一个表中的列相关联。具体来说,它要求一个表中的某个列中的值必须在另一个表的某个列中存在。...约束可以确保数据的完整性和一致性,防止数据被删除或修改时发生错误MySQL中,约束由FOREIGN KEY关键字和REFERENCES子句定义。...如何创建约束MySQL中,创建约束需要以下步骤:第一步:创建主表和从表约束通常涉及到两个表,一个主表和一个从表。主表包含一个列或一组列,其值将在从表中进行比较。...FOREIGN KEY子句用于指定要添加约束的列,REFERENCES子句用于指定关联表和列。如何使用约束一旦约束被创建,就可以使用它来确保数据的完整性和一致性。...以下是如何使用约束的一些示例:插入数据:当向"orders"表中插入数据时,如果在"customer_id"列中插入一个不存在于"customers"表中的值,则会引发约束错误

4K30

Mysql常见错误提示及解决方法

1016:文件无法打开,使用后台修复或者使用 phpmyadmin 进行修复。....备份数据库,修复相关表(注:这种情况比较常见,如pw_posts表,对表进行修复的时候不要忘记备份). 1064:MySQL 不支持错误提示中的编码。...1216:约束检查失败,更新子表记录失败。 1217:约束检查失败,删除或修改主表记录失败。 1226:当前用户使用的资源已超过所允许的资源,请重启数据库或重启服务器。...1227:权限不足,您无权进行操作。 1235:MySQL版本过低,不具有本功能。 1250:客户端不支持服务器要求的认证协议,请考虑升级客户端。...这个错误的原因很简单,客户没有足够的内存存储全部结果。 2013:远程连接数据库是有时会有这个问题,MySQL 服务器执行一条 SQL 语句的时候失去了连接造成的。

2K20

多表间的关系-一对多-多对多-一对一-约束

image-20200529101003797 用于限制字段取值必须为主表主键的值的约束叫做-约束. 2....约束 5.1 什么是约束 一张表中的某个字段引用另一个表的主键 主表:约束别人 副表/从表:使用别人的数据,被别人约束 5.2 创建 新建表时增加:[CONSTRAINT] [约束名称...> 部门错误的数据添加失败 INSERT INTO employee (NAME, age, dep_id) VALUES ('二王', 20, 5); 执行如下: mysql> select *...TABLE employee DROP FOREIGN KEY emp_depid_ref_dep_id_fk; employee表存在况下添加 ALTER TABLE employee ADD...> 5.4 数据操作注意事项 添加数据时: 先添加主表中的数据,再添加从表中的数据 删除数据时: 先删从表中的数据,再删主表中的数据 修改数据时: 如果主表中的主键被从表引用了,不能修改主键的值

5.7K20

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...‘T FOREIGN_KEY_CHECKS = 0’ at line 1 经查询,这个是 mysql 启动和关闭约束的方法,去掉即可。...: //您必须在CREATE TABLE中使用键子句来指定MySQL中的: DROP TABLE IF EXISTS cities; #删除原来创建的表 CREATE TABLE cities

3.1K30

mysql学习笔记(四)约束与索引

表具有一些特性,这些特性定义了数据表中如何存储 表由列组成,我们也称为字段,每个字段描述了它所含有的数据的意义,数据表的设计实际就是对字段的设计 表的数据按行存储 约束与索引 完整性 数据完整性(Data...例如选课表,表中有两个,分别参考学生表和课程表 约束的五个等级: cascade方式:级联,主动权主表,如果主表被依赖字段修改了,从表的字段也会跟着修改。...set null方式:主动权主表,如果主表被依赖字段修改了,从表的字段会将值设置为Null,这里要求,字段不能有非空约束。...set default方式:主动权主表,如果主表被依赖字段修改了,从表的字段会将值设置为default,这里要求,字段必须有默认约束。...约束mysql中也可用Index指代 不用填写约束名,且默认约束名就为列名

2K00

第13章_约束

因为被依赖 / 被参考的值必须是唯一的 (2)创建约束时,如果不给约束命名,默认名不是列名,而是自动产生一个键名(例如 student_ibfk_1;),也可以指定约束名。...添加约束后,主表的修改和删除数据受约束 添加约束后,从表的添加和修改数据受约束 在从表建立,要求主表必须存在 删除主表时,要求从表从表先删除,或将从表中外引用该主表的关系先删除...例如:员工表中,可以添加一个员工的信息,它的部门指定为一个完全不存在的部门。 问题 3:那么建和不建约束和查询有没有关系? 答:没有 MySQL 里,约束是有成本的,需要消耗系统资源。...比如大型网站的中央数据库,可能会 因为约束的系统开销而变得非常慢 。所以, MySQL 允许你不使用系统自带的约束 应用层面 完成检查数据一致性的逻辑。...添加数据时,没有任何错误或警告 但是 MySQL 8.0 中可以使用 check 约束了。

33730
领券