首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MYSQL ERROR CODE 错误编号的意义

    1181:回滚事务失败 1203:当前用户和数据库建立的连接已到达数据库的最大连接数,请增大可用的数据库连接数或重启数据库 1205:加锁超时 1211:当前用户没有创建用户的权限 1216:外键约束检查失败...,更新子表记录失败 1217:外键约束检查失败,删除或修改主表记录失败 1226:当前用户使用的资源已超过所允许的资源,请重启数据库或重启服务器 1227:权限不足,您无权进行此操作 1235:...错误:1239 SQLSTATE: 42000 (ER_WRONG_FK_DEF) 消息:对于 ’%s’: %s, 外键定义不正确。...错误:1451 SQLSTATE: 23000 (ER_ROW_IS_REFERENCED_2) 消息:不能删除或更新父行,外键约束失败(%s)。...错误:1452 SQLSTATE: 23000 (ER_NO_REFERENCED_ROW_2) 消息:不能添加或更新子行,外键约束失败(%s)。

    2.9K20

    学习PDO中的错误与错误处理模式

    PDO::ERRMODE_EXCEPTION,除设置错误码之外,PDO 还将抛出一个 PDOException 异常类并设置它的属性来反射错误码和错误信息。...: SQLSTATE[HY000] [1049] Unknown database 'blog_test1' blog_test1 表并不存在,所以在 new PDO 的时候就已经直接会抛出异常了。...这个在实例化连接数据库过程中的错误处理机制是固定的,不是我们能修改的错误处理机制,毕竟如果连数据库连接都无法建立的话,就不用谈后面的任何操作了。...这个就是 PDO 在默认情况下的错误处理机制。其实,这样的处理并不好,因为如果我们忘记设置错误处理机制的话,就会导致一些错误无法呈现,而且并不好调试。...属性添加方式 在上述测试代码中,我们使用的是 setAttribute() 方法来设置 PDO 的错误处理属性,但其实我们可以在实例化 PDO 类时就指定一些需要的属性。

    2.1K10

    MySQL高级篇-程序出了问题怎么办?

    问题场景   先来看个场景:   执行一条插入语句,因为id是主键,没有设置自增,所以在插入的时候我们必须要添加该字段的值,但是上面没有添加就出现了1364的错误提示信息,针对这种情况我们应该怎么处理呢...上图中的 1364是 MySQL_error_code, HY000 是sqlstate_value 错误码 说明 MySQL_error_code 是数值类型错误代码,比如 1364 sqlstate_value...是长度为5的字符串类型错误代码,比如 HY000 案例:定义“Field_Not_Be_NULL”错误名与MySQL中违反非空约束的错误类型是“ERROR 1364 (HY000)”对应。...CONDITION FOR SQLSTATE 'HY000'; 3.定义处理程序   可以为SQL执行过程中发生的某种类型的错误定义特殊的处理程序。...'HY000' SET @proc_value=-1; #处理的方法三 # 先定义条件 # DECLARE field_not_null CONDITION FOR SQLSTATE 'HY000

    63220

    MySQL外键约束

    什么是外检约束 外键其实很好理解,简单的说就是两张表建立一个连接关系。这里我们那主表A和副表B举例,我A表中有用户信息,B表中有用户订单信息。...要是数据完整对应起来,肯定是需要把两张表关联起来,我们因此会在B表中村一个A表的字段,常见的我们存的是A表的主键ID外键。 外检约束要求 .MySQL的数据表存储引擎必须为Innodb。...外键约束的作用 保证数据的完整性和一致性. 创建语法 [CONSTRAINT [symbol]] FOREIGN KEY [index_name] (index_col_name, ...)...SET NULL: 从父表中删除或更新对应的行,同时将子表中的外键列设为空。注意,这些在外键列没有被设为NOT NULL时才有效。...(HY000): Cannot add foreign key constraint 结论:Innodb存储引擎暂不支持。

    5.9K20

    2024Mysql And Redis基础与进阶操作系列(4)作者——LJS

    如果类 型不一样,创建子表时,就会出现错误 “ERROR 1005 (HY000): Can't create table'database.tablename'(errno: 150)”。...但是索引名是外键的约束名 根据外键查询效率很高 删除外键约束后,必须手动删除对应的索引 1.5 添加外键约束 (1)建表时 create table 主表名称( 字段1...(2)删除表时,先删除从表emp,再删除主表dept 建表后一般情况下,表与表的关联都是提前设计好了的,因此会在创建表的时候就把外键约束定义好。...添加了外键约束后,主表的修改和删除数据受约束 添加了外键约束后,从表的添加和修改数据受约束 在从表上建立外键,要求主表必须存在删除主表时,要求从表从表先删除,或将从表中外键引用该主表的关系先删除...答案 答:不是的 问题2:建和不建外键约束有什么区别? 答案: 建外键约束,你的操作(创建表、删除表、添加、修改、删除)会受到限制,从语法层面受到限制。

    11310

    MySQL触发器

    在库存表中添加一条库存记录。...,如果大于领导薪资,则报sqlstate_value为'HY000'的错误,从而使得添加失败。...'HY000' SET MESSAGE_TEXT = '薪资高于领导薪资错误'; END IF; END // DELIMITER ; 上面触发器声明过程中的NEW关键字代表INSERT添加语句的新记录...注意点 注意,如果在子表中定义了外键约束,并且外键指定了ON UPDATE/DELETE CASCADE/SET NULL子句,此时修改父表被引用的键值或删除父表被引用的记录行时,也会引起子表的修改和删除操作...例如:基于子表员工表(t_employee)的DELETE语句定义了触发器t1,而子表的部门编号(did)字段定义了外键约束引用了父表部门表(t_department)的主键列部门编号(did),并且该外键加了

    3.2K20

    【重学 MySQL】八十、掌握定义条件与处理程序,让数据库管理更高效!

    在这里,1062 是 MYSQL_error_code,表示重复键错误;23000 是对应的 sqlstate_value。...在这里,23000 是 sqlstate_value,表示完整性约束错误(即重复键错误);1062 是对应的MySQL错误代码。...1216:外键约束检查失败,更新子表记录失败。 1217:外键约束检查失败,删除或修改主表记录失败。...它是处理一般错误的通用方式。 总结 每种方法都有其特定的用途和适用场景。在选择使用哪种方法时,你应该根据具体的需求和错误处理策略来决定。...示例 定义一个 CONTINUE 处理程序,当发生 SQLSTATE ‘23000’(表示约束违反)时,输出一条消息: DECLARE CONTINUE HANDLER FOR SQLSTATE '23000

    13310

    第17章_触发器

    ,如果大于领导薪资,则报 sqlstate_value 为’HY000’的错误,从而使得添加失败。...'HY000' SET MESSAGE_TEXT = '薪资高于领导薪资错误'; END IF; END // DELIMITER ; 上面触发器声明过程中的 NEW 关键字代表 INSERT 添加语句的新记录...# 4.3 注意点 注意,如果在子表中定义了外键约束,并且外键指定了 ON UPDATE/DELETE CASCADE/SET NULL 子句,此时修改父表被引用的键值或删除父表被引用的记录行时,也会引起子表的修改和删除操作...例如:基于子表员工表(t_employee)的 DELETE 语句定义了触发器 t1,而子表的部门编号(did)字段定义了外键约束引用了父表部门表(t_department)的主键列部门编号(did),...并且该外键加了 “ON DELETE SET NULL” 子句,那么如果此时删除父表部门表(t_department)在子表员工表(t_employee)有匹配记录的部门记录时,会引起子表员工表(t_employee

    23920

    MySQL数据库,从入门到精通:第十七篇——MySQL 触发器的使用方法及注意事项

    ,如果大于领导薪资,则报sqlstate_value为’HY000’的错误,从而使得添加失败。...'HY000' SET MESSAGE_TEXT = '薪资高于领导薪资错误'; END IF; END // DELIMITER ; 上面触发器声明过程中的NEW关键字代表INSERT添加语句的新记录...,及时提示错误,防止错误数据进入系统。...4.3 注意点 注意,如果在子表中定义了外键约束,并且外键指定了ON UPDATE/DELETE CASCADE/SET NULL子句,此时修改父表被引用的键值或删除父表被引用的记录行时,也会引起子表的修改和删除操作...例如:基于子表员工表(t_employee)的DELETE语句定义了触发器t1,而子表的部门编号(did)字段定义了外键约束引用了父表部门表(t_department)的主键列部门编号(did),并且该外键加了

    45711

    MySQL表的完整性约束

    KEY :主键,指定该列的值可以唯一地标识该列记录 # FOREIGN KEY :外键,指定该行记录从属于主表中的一条记录,主要用于参照完整性 返回顶部 NOT NULL 是否可空,null表示空,非字符串...| +---------+--------------+------+-----+---------+-------+ rows in set (0.01 sec) # 方法四:给已经建成的表添加主键约束...(HY000): Cannot add foreign key # 设置dep_id非空,仍然不能成功创建外键 mysql> alter table departments modify dep_id...(HY000): Cannot add foreign key constraint # 当设置字段为unique唯一字段时,设置该字段为外键成功 mysql> alter table departments...Restrict方式 同no action, 都是立即检查外键约束 . Set default方式 父表有变更时,子表将外键列设置成一个默认的值 但Innodb不能识别

    3.5K20

    MySQL中创建外键的错误:1215 Cannot add the foreign key constraint

    引言: MySQL中经常会需要创建父子表之间的约束,这个约束是需要建立在主外键基础之上的,这里解决了一个在创建主外键约束过程中碰到的一个问题。 1....碰到错误 在创建外键之时,使用的SQL和碰到错误信息如下: alter table `product' add CONSTRAINT `sid_ref` FOREIGN KEY (`sid`)...REFERENCES `sealer` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION 碰到的错误信息如下: 无法正确的插入外键约束。...解决的办法 修改product.sid中的数据类型,添加unsigned和字段的长度,将其设置为相同即可。 5....总结 之所以出现1215的问题,是由于主外键之间的数据类型不一致造成的,以后类似问题,皆可按此处理。

    2.5K50

    MySQL中触发器的使用

    'HY000' SET message_text = msg; END 结果: INSERT INTO products VALUES('demo2','1003','xiaoguo','66.6...'HY000' SET message_text = msg; 如果该SIGNAL语句指示特定SQLSTATE值,则该值用于表示指定的条件 “HY000”被称为“一般错误”: 如果命令出现一般错误,则会触发后面的...'HY000' SET message_text = msg; END IF; END 例三:向student表中插入信息时,检查ssex的值必须为男或女。...where vend_id='1001'; DROP TRIGGER UPDATEevendor; 注:upper:将文本转换为大写: 例二:不允许修改student表中的学号sno,如果修改该列则显示错误信息并取消操作...:如果遇到触发器报错“Not allowed to return a result set from a trigger” 原因:因为从MySQL5以后不支持触发器返回结果集 解决方法:在后面语句后面添加

    3.3K10

    db2 terminate作用_db2 truncate table immediate

    23503 外键的插入或更新值无效。23504 NO ACTION 更新或删除规则防止父键被更新或删除。23505 发生由唯一索引或唯一约束强加的约束违例。...23510 使用由 RLST 表强加的命令时发生约束违例。23511 不能删除父行,因为检查约束限制该删除。23512 不能添加检查约束,因为该表含有不满足约束定义的行。...23513 INSERT 或 UPDATE 的结果行不符合检查约束定义。23514 检查数据处理中发现约束违例。23515 未能创建唯一索引,或者不能添加唯一约束,因为该表包含指定键的重复值。...23520 不能定义外键,因为其所有的值都不同于父表的父键。23521 对目录表的更新违反了内部约束。23522 标识列值的范围或者序列用完。23523 已经为安全标号列提供了无效值。...42830 外键不符合父键的描述。 42831 主键或唯一键列不允许空值。 42832 不允许对系统对象执行该操作。 42834 不能指定 SET NULL,因为不能对外键的任何列指定空值。

    7.7K20

    MySQL实战七:你不知道的外键与约束使用!

    ; signal sqlstate 'HY000' set message_text=msg; end if; end; $$ delimiter ; delimiter解释:其实就是告诉...2.2 外键 2.2.1 创建外键 (1)不带别名的外键,数据库自动生成 首先创建department表: CREATE TABLE department ( dept_name varchar...(2)删除外键 alter table instructor drop foreign key fk_dept_name; (3)添加外键 alter table instructor add constraint...学习 cascade 表示级联操作,就是说,如果主键表中被参考字段更新,外键表(子表)中也更新,主键表(父表)中的记录被删除,外键表(子表)中改行也相应删除。...而on update只能删除子表外键数据,不能删除父表主键数据,只能更新父表的主键,同时父子表数据都会被更新,但是在子表的外键上做更新操作无效。

    4.3K20

    MySQL 8.0有趣的新特性:CHECK约束

    (例外:一个临时表可能使用与非临时表一样的约束名称) CHECK的条件表达式必须遵守以下规则,如果包含不允许的结构,将会触发错误: 非生成列和生成列允许被添加到表达式,但包含AUTO_INCREMENT...(),CURRENT_USER(),NOW() 存储函数和用户自定义函数不被允许 存储过程不被允许 变量:系统变量、用户自定义变量和存储过程的本地变量均不被允许使用 子查询不应许被使用 外键参考动作,如...:ON UPDATE, ON DELETE被禁止在包含CHECK约束的列使用,相应的,CHECK约束也被禁止在使用外键参考动作的列使用 CHECK约束在插入、更新、替换(REPLACE)和LOAD DATA...,在提前数据库前检查 一般性的,选择不同方式的原则如下: 如果CHECK约束可以实现,且约束比较稳定,一般用CHECK约束实现,比如:年龄不允许为负数,不允许>150等,比如: CREATE TABLE...CHECK (ID>=1 AND PID >=0); -- remove check ALTER TABLE Departments DROP CHECK CHK_PID; 如果属于数据库逻辑,比如:审计,外键可以使用触发器

    1.1K30
    领券