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

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

特点:这些代码是MySQL数据库系统内部定义的,用于标识和记录各种可能的错误。它们通常是数字形式的,例如 1062 表示重复键错误。...示例 假设在MySQL中执行一个插入操作时发生了重复键错误,那么可能会返回以下错误信息: 使用 MYSQL_error_code 表示:ERROR 1062 (23000): Duplicate entry...在这里,1062 是 MYSQL_error_code,表示重复键错误;23000 是对应的 sqlstate_value。...在这里,23000 是 sqlstate_value,表示完整性约束错误(即重复键错误);1062 是对应的MySQL错误代码。...示例 定义一个 CONTINUE 处理程序,当发生 SQLSTATE ‘23000’(表示约束违反)时,输出一条消息: DECLARE CONTINUE HANDLER FOR SQLSTATE '23000

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

    MYSQL 毛病那么多,optimize table 为什么做不了

    ,导致的optimize table 的执行错误。...通过存储过程我们插入数据,在此同时我们写另一个存储过程不断的往test表中插入重复的数据,持续的插入,然后我们在另一个连接中,持续的运行optimize table。...简单解释是因为,在optimize table 操作时会对唯一索引进行重新的整理,并且重新生成索引会对数据进行检查,当插入重复数据的时候,无法满足唯一约束条件,而导致OT操作失败。...当应用DML操作时,可能会遇到重复键条目错误(ERROR 1062 (23000):Duplicate entry),即使重复条目只是临时的,并且稍后会被在线日志中的另一个条目回滚。...这类似于InnoDB中的外键约束检查的概念,约束必须在事务期间保持。 同样更换了 alter table engine=innodb; 产生的结果是一致的,都是无法进行。

    32610

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

    一、表的约束 在创建表的时候,可以给表的字段添加相应的约束,添加约束的目的是为了保证表中数据的合法性、有效性、完整性。...常见的约束有哪些: 非空约束(not null):约束的字段不能为NULL 唯一约束(unique):约束的字段不能重复 主键约束(primary key):约束的字段既不能为NULL,也不能重复...(2,'zhangsan'); ERROR 1062 (23000): Duplicate entry 'zhangsan' for key 'username' insert into t_user...,因为在建表时给username这个字段添加了唯一性约束,此字段值不能重复,“zhangsan”值重复!...(23000): Duplicate entry '111-zs' for key 'usercode' insert into t_user values(4,'111','zs'); 此语句出现错误

    1.7K50

    MySQL和Oracle中唯一性索引的差别(r12笔记第83天)

    于是我尝试删除这个唯一性索引,转而创建一个主键,但是这个操作竟然抛出了数据冲突的的错误。...add unique key(id); 插入1行数据 insert into unique_test values(1,'aa'); 再插入1行,毫无疑问会抛出错误。...insert into unique_test values(1,'aa'); ERROR 1062 (23000): Duplicate entry '1' for key 'id' 我们删除原来的索引...(23000): Duplicate entry '1-aa' for key 'id' 可见唯一性约束是生效了,插入不冲突的数据没有任何问题。...--------------------------------------- 我就把问题点透,就在哪个null的地方上,这个是这个问题的根本,进一步来说,这个是唯一性索引和主键的一个差别,那就是主键约束相比唯一性约束来说

    1.3K60

    【MySQL】MySQL表的增删改查(进阶篇)——之约束条件

    sec) 4.1添加数据约束 这里在第二次添加数据时,会进行约束 mysql> insert into student values(1,'孙悟空'),(1,'猪八戒'); ERROR 1062 (23000...): Duplicate entry '1' for key 'id' 注解:这里的报错就是说明id这个1被约束后,不能再次出现,重复了; 4.2修改数据约束 mysql> insert into student...'id' cannot be null mysql> insert into student values(1,'猪八戒'),(1,'沙悟净'); ERROR 1062 (23000): Duplicate...1062 (23000): Duplicate entry '1' for key 'PRIMARY' mysql> update student set id=null where name='沙悟净...'; ERROR 1048 (23000): Column 'id' cannot be null 注解:此时可以看到这里和上述的插入数据情况一样,小编就不再过多解释了;重复和null都是不能存在的;

    16210

    【MySql】表的约束

    约束的最终目标:保证数据的完整性和可预期性所以需要更多的约束。...主键 primary key 主键:primary key用来唯一的约束该字段里面的数据,不能重复,不能为空,一张表中最多只能有一个。但是并不意味着一个表中的主键,只能添加给一列。...) mysql> insert into test_key values (1,'刘备'); ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY...我们选择某一列作为主键,但是并不排除其他属性不需要维护,可能需要用到唯一键来限定,选择其他列作为唯一键,与主键配合起来,能够保证一些数据冲突。...而我们设计员工工号的时候,需要一种约束:而所有的员工工号都不能重复。 具体指的是在公司的业务上不能重复,我们设计表的时候,需要这个约束,那么就可以将员工工号设计成为唯一键。

    21530

    数据库SQL小技巧大揭秘:IGNORE选项让你的数据处理更从容

    具体来说,在 INSERT | UPDATE 语句中,IGNORE 的作用是在插入或更新数据时忽略特定的错误,而不导致整个操作失败。...另外,IGNORE 选项还可以在非空约束、写入的字段内容超过字段长度时进行截断处理等,下面是几个具体的例子。 1....','abc','a'); ERROR 1062 (23000): Duplicate entry '1' for key 'test1.PRIMARY' 加上ignore选项后,结果如下: mysql...,有冲突的数据将会忽略告警而继续进行后续操作。...结语 总的来说,IGNORE 提供了一种在插入或更新时处理主键、唯一键冲突、非空约束字段未赋值、字段超长等异常时内部自动处理的方法,使得操作不因为某一行的冲突而中断,而是继续处理。

    48220

    MySQL数据库,从入门到精通:第十三篇——MySQL数据表约束详解

    它是防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。 为了保证数据的完整性,SQL规范以约束的方式对 表数据进行额外的条件限制 。...ERROR 1062 ( 23000 ): Duplicate entry '101223199012015624' for key 'cardid' insert into student values...( 3 ,'王五','13710011003','101223199012015625'); ERROR 1062 ( 23000 ): Duplicate entry '13710011003' for...( 23000 ): Duplicate(重复) entry(键入,输入) '1' for key 'PRIMARY' insert into temp values( 1 ,'王五');#失败 ERROR...1062 ( 23000 ): Duplicate entry '1' for key 'PRIMARY' insert into temp values( 3 ,'张三');#成功 mysql> select

    24610

    MySQL数据库表约束详解

    反过来,站在MySQL的视角,凡是插进来的数据,都是符合数据约束的! 约束的最终目标:保证数据的完整性和可预期性! 下面来介绍一些主流的约束。...6.主键 主键:primary key用来唯一的约束该字段里面的数据,不能重复,不能为空,一张表中最多只能有一个主键;主键所在的列通常是整数类型。...(23000): Duplicate entry '1-123' for key 'PRIMARY' -- 主键冲突 自增长: auto_increment:当对应的字段,不给值,会自动的被系统触发,...而我们设计员工工号的时候,需要一种约束:而所有的员工工号都不能重复。 具体指的是在公司的业务上不能重复,我们设计表的时候,需要这个约束,那么就可以将员工工号设计成为唯一键。...ERROR 1062 (23000): Duplicate entry '01' for key 'id' mysql> insert into student(id, name) values(null

    7300

    MYSQL ERROR CODE 错误编号的意义

    1062:字段值重复,入库失败 1169:字段值重复,更新记录失败 1177:打开数据表失败 1180:提交事务失败 1181:回滚事务失败 1203:当前用户和数据库建立的连接已到达数据库的最大连接数...冲突声明:’%s%s’和’%s%s’ 错误:1303 SQLSTATE: 2F003 (ER_SP_NO_RECURSIVE_CREATE) 消息:不能从另一个存储子程序中创建%s。...错误:1330 SQLSTATE: 42000 (ER_SP_DUP_PARAM) 消息:重复参数: %s 错误:1331 SQLSTATE: 42000 (ER_SP_DUP_VAR) 消息:重复变量...错误:1451 SQLSTATE: 23000 (ER_ROW_IS_REFERENCED_2) 消息:不能删除或更新父行,外键约束失败(%s)。...错误:1452 SQLSTATE: 23000 (ER_NO_REFERENCED_ROW_2) 消息:不能添加或更新子行,外键约束失败(%s)。

    2.9K20

    db2 terminate作用_db2 truncate table immediate

    01564 已为主机变量指定了空值,因为发生了被零除的错误。01586 该语句导致一个或多个表自动置于设置完整性暂挂状态。01589 语句包含有冗余规范。...运行时可能发生截断(那时可能会引起错误)。01594 对于所有信息,SQLDA 内的条目数不够多(即,没有足够的描述符返回相异名称)。01595 该视图已替换现有无效视图。...类代码 40:事务回滚 SQLSTATE 值 含义40001 发生了伴随自动回滚的超时或死锁。40003 语句完整性未知。40504 由于系统错误导致工作单元被回滚。...42709 在键列列表中指定了重复的列名。42710 检测到重复的对象或约束名。42711 在对象定义或 ALTER 语句中检测到重复列名或属性名。...类代码 40:事务回滚 SQLSTATE 值 含义 40001 发生了伴随自动回滚的超时或死锁。 40003 语句完整性未知。 40504 由于系统错误导致工作单元被回滚。

    7.7K20

    数据库约束-主键约束-唯一约束-非空约束-默认值

    数据库约束-主键约束-唯一约束-非空约束-默认值 约束概述 约束其实就是一种限制,用于修饰表中的列. 通过这种限制来保证表中数据的正确性、有效性和完整性。...INSERT INTO user1 VALUES(1,'tom'); ERROR 1062 (23000): Duplicate entry '1' for key 'PRIMARY' mysql>...唯一约束 UNIQUE 在这张表中这个字段的值不能重复 2.1 唯一约束的基本格式 字段名 字段类型 UNIQUE 2.2 实现唯一约束 具体操作: 创建学生表st7, 包含字段(id, name),name...这一列设置唯一约束,不能出现同名的学生 CREATE TABLE st7 ( id INT, NAME VARCHAR(20) UNIQUE ); 添加数据,查看数据重复的问题 INSERT INTO...: Duplicate entry '貂蝉' for key 'name' mysql> INSERT INTO st7 VALUES (5, '貂蝉'); ERROR 1062 (23000): Duplicate

    6.4K10

    MySQL 学习笔记(三):完整性和触发器设计

    (一)完整性设计 方法一、在设计表时定义约束 删除数据库school,建立新数据库school1 drop database school; create database school; use...例如:检查student表的主键约束是否生效,测试用例 insert into student values ('95001','测试','男',20,'CS'); 报错:ERROR 1062 (23000...95005','李勇','男',20,'CS'); 报错:ERROR 1062 (23000): Duplicate entry '李勇' for key 'Sname'  检查student表的检查约束是否生效...references Course(cno) on delete cascade; 发现报错Can't write; duplicate key in table '#sql-1f2_7',发现原来是这里的约束名和前面的重复了...这里我创建外键的时候 sno 中有些表有主键约束,有些却没有,所以当我删除主键约束的时候它会提示外键被错误建立起来了。但我不明白为什么建立外键的时候没有报错。

    1.5K40

    MySQL之alter ignore 语法

    我们可以看看结果: mysql--dba_admin@127.0.0.1:test 23:38:43>>alter table test add unique key uni_key(age); ERROR 1062...(23000): Duplicate entry '2' for key 'uni_key' mysql--dba_admin@127.0.0.1:test 23:39:04>>alter ignore...table test add unique key uni_key(age); ERROR 1062 (23000): Duplicate entry '2' for key 'uni_key'...也就是alter table test的方法,发现有冲突的记录,然后我们该用alter ignore的方法,错误依旧保留,经过查询是少了一个参数,old_alter_table,要想成功实现去除重复记录并且添加唯一索引...这里需要注意的是,我的这个测试的环境是MySQL5.5.19,在MySQL5.7环境中,这个测试时不成功的,这种语法被标记为错误语法。所以这个方法只能在MySQL5.5版本中使用。

    4K20
    领券