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

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执行过程中发生的某种类型的错误定义特殊的处理程序。...SQLWARNING :匹配所有以01开头的SQLSTATE错误代码;NOT FOUND :匹配所有以02开头的SQLSTATE错误代码;SQLEXCEPTION :匹配所有没有被SQLWARNING或

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

    MySQL索引的一些小细

    (HY000): Field 'id' doesn't have a default value 不指定默认值,则会进行提醒。...---+------+ 3 rows in set (0.00 sec) 结论: 主键列可以不设置not null和auto_increment选项,但是这种情况下,插入不包含主键列的记录,会提示主键没有默认值...此时,需要单独提供主键的默认值。 如果主键列为int类型,并且包含auto_increment选项,则可以直接插入不包含主键列的记录。 2 主键为多个字段时,是否允许其中一个字段自增?...,没有默认值会报错,如下: mysql >>insert into index_test4 (id) values (7); ERROR 1364 (HY000): Field 'name...4 当字段有null值时,反向查找可能会得到错误结果 看看下面这个例子: mysql >>select * from index_test3; +----+------+ | id | name

    53520

    第16章_变量、流程控制与游标

    定义条件使用 DECLARE 语句,语法格式如下: DECLARE 错误名称 CONDITION FOR 错误码(或错误条件) 错误码的说明: MySQL_error_code 和 sqlstate_value...MySQL_error_code 是数值类型错误代码。 sqlstate_value 是长度为 5 的字符串类型错误代码。...例如,在 ERROR 1418 (HY000) 中,1418 是 MySQL_error_code,'HY000’是 sqlstate_value。...错误类型(即条件)可以有如下取值: SQLSTATE '字符串错误码' :表示长度为 5 的 sqlstate_value 类型的错误代码; MySQL_error_code :匹配数值类型错误代码;...SQLWARNING :匹配所有以 01 开头的 SQLSTATE 错误代码; NOT FOUND :匹配所有以 02 开头的 SQLSTATE 错误代码; SQLEXCEPTION :匹配所有没有被

    37610

    MySQL:表的约束

    : mysql> insert into myclass(class_name) values('class1'); ERROR 1364 (HY000): Field 'class_room' doesn't...对于default而言,当用户忽略这一列的时候,如果设置了default,则使用默认值;如果没有设置default,则报错。 而对于age列: 下来再来看这个: 为什么还是让插入了呢?...而如果为我们没有在创建表的时候显示声明默认值,MySQL会优化,自动加上默认值为NULL。 四....语法: foreign key (字段名) references 主表(列) 案例: 这样的student只是有外键之名(关联关系),但是没有外键之实(没有约束)。重新创建一个。...外键需要注意: (1)从表和主表的关联关系 (2)产生外键约束 总结: 好了,到这里今天的知识就讲完了,大家有错误一点要在评论指出,我怕我一人搁这瞎bb,没人告诉我错误就寄了。

    6710

    MySQL数据库,从入门到精通:第十六篇——MySQL变量、流程控制和游标详解

    定义条件使用DECLARE语句,语法格式如下: DECLARE 错误名称 CONDITION FOR 错误码(或错误条件) 错误码的说明: MySQL_error_code和sqlstate_value...MySQL_error_code是数值类型错误代码。 sqlstate_value是长度为 5 的字符串类型错误代码。...例如,在ERROR 1418 (HY000)中, 1418 是MySQL_error_code,'HY000’是sqlstate_value。...错误类型 (即条件)可以有如下取值: SQLSTATE ‘字符串错误码’:表示长度为 5 的sqlstate_value类型的错误代码; MySQL_error_code:匹配数值类型错误代码; 错误名称...SQLWARNING:匹配所有以 01 开头的SQLSTATE错误代码; NOT FOUND:匹配所有以 02 开头的SQLSTATE错误代码; SQLEXCEPTION:匹配所有没有被SQLWARNING

    24810

    带你学MySQL系列 | 一文让你真正理解MySQL数据库的“完整性约束”?

    key限制,而没有使用主键自增(auto_increament), 需要我们自己给主键字段插入值,否则会出现如下错误。..."ERROR 1364 (HY000): Field 'sid' doesn't have a default value" 但是我们上面说过,主键字段一般是不进行修改的,也就是说不要主动给他值,主键字段应该是让系..."这些细节知识,有时候是我们没有注意到的,因此单独拿出来说明。"...insert into student(age,idcard) values (33,"123456789"); 举例如下: 6.添加默认值约束(default) 某个字段当被设置了默认值以后,当我们不为该字段指定值的时候...1)怎么添加默认值约束? 方式一:创建表的时候,给字段添加默认值。

    79740

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

    学习PDO中的错误与错误处理模式 在 PDO 的学习过程中,我们经常会在使用事务的时候加上 try...catch 来进行事务的回滚操作,但是大家有没有注意到默认情况下 PDO 是如何处理错误语句导致的数据库操作失败问题呢...mysql:host=127.0.0.1;port=3306;dbname=blog_test1', 'root', ''); // Fatal error: Uncaught PDOException: SQLSTATE...[HY000] [1049] Unknown database 'blog_test1' blog_test1 表并不存在,所以在 new PDO 的时候就已经直接会抛出异常了。...ATTR_ERRMODE, PDO::ERRMODE_WARNING); $pdo->query('select * from aabbcc'); // Warning: PDO::query(): SQLSTATE...PDO::ERRMODE_EXCEPTION); $pdo->query('select * from aabbcc'); // Fatal error: Uncaught PDOException: SQLSTATE

    2.1K10

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

    具体来说,在 INSERT | UPDATE 语句中,IGNORE 的作用是在插入或更新数据时忽略特定的错误,而不导致整个操作失败。...另外,IGNORE 选项还可以在非空约束、写入的字段内容超过字段长度时进行截断处理等,下面是几个具体的例子。 1....忽略非空约束 2.1 列出字段赋值为null时 当列出需赋值的字段,但是对其中的非空字段赋值为null时,结果如下: mysql> select * from test1; +----+------...1364 (HY000): Field 'card_no' doesn't have a default value mysql> insert ignore into test1(id,name...aaa | aa | +----+------------+---------+------+ 6 rows in set (0.00 sec) mysql> 结果:此时插入了0 (整型的默认值

    48520

    MySQL操作之存储过程

    DEFAULT value:子句给变量提供一个默认值。该值除了可以被声明为一个常数之外,还可以被指定为一个表达式。 如果没有Default子句,变量的初始值为null。...sqlstate_value和 mysql_error_code:**都可以表示MySQL的错误。 sqlstate_value:表示长度为5的字符串类型的错误代码。...可以有 SQLSTATE[VALUE]sqlstate_value:包含5个字符的字符串错误值。 condition_name:表示DECLARE CONTINUE 定义的错误条件名称。...SQLWARNING:匹配所有以01开头的SQLSTATE错误代码。 NOT FOUND:匹配所有以02开头的SQLSTATE错误代码。...SQLEXCEPTION:匹配所有没有被SQLWARING和NOT FOUND捕获的SQLSTATE错误代码。 mysql_error_code:匹配数值类型错误代码。

    29920
    领券