首页
学习
活动
专区
圈层
工具
发布

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

MySQL中的异常处理 1....问题场景   先来看个场景:   执行一条插入语句,因为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)”对应。...EXIT :表示遇到错误马上退出。UNDO :表示遇到错误后撤回之前的操作。MySQL中暂时不支持这样的操作。

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

    xampp环境配置下出现的问题解决 — mysqli_real_connect(): (HY0001045): Access denied for user ‘root‘@‘localhost‘

    XAMPP 环境配置下出现的问题 版本 :xampp 7.3.1      今天,柳妹在虚拟机上面又一次搭建xampp的环境的时候,在mysql的管理界面对于root@localhost 管理用户进行密码设定的时候...,修改了密码,当再一次点击进入的时候,报错如下: MySQL 返回:无法连接:无效的设置。...您应该检查配置文件中的主机、用户名和密码,并确认这些信息与 MySQL 服务器管理员所给出的信息一致。     ...提示是错误 1045,他告诉我们错误是由于没有访问权限,所以访问被拒绝了,主要原因就是由于该用户名所对应的密码错误。...经过在windows上搭建环境所经历的情况,我发现第一种解决方法能够帮助我解决问题,主要就是将密码清空了,还原到原来没有设置密码的环境下,那么原来的配置正好生效,因此问题解决。

    2.5K10

    MySQL:表的约束

    站在正常的业务逻辑中: 如果班级没有名字,你不知道你在哪个班级。 如果教室名字为空,就不知道在哪上课。 所以我们在设计数据库表的时候,一定要在表中进行限制,满足上面条件的数据就不能插入到表中。...: mysql> insert into myclass(class_name) values('class1'); ERROR 1364 (HY000): Field 'class_room' doesn't...如果我们没有明确指定一列要插入,用的是default。如果建表中,对应列默认没有设置default,无法直接插入。 default和not null不冲突,而是互相补充的。...而如果为我们没有在创建表的时候显示声明默认值,MySQL会优化,自动加上默认值为NULL。 四....自增长 auto_increment:当对应的字段,不给值,会自动的被系统触发,系统会从当前字段中已经有的最大值+1操作,得到一个新的不同的值。通常和主键搭配使用,作为逻辑主键。

    68510

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

    一、表的约束 在创建表的时候,可以给表的字段添加相应的约束,添加约束的目的是为了保证表中数据的合法性、有效性、完整性。...(简称PK) 外键约束(foreign key):…(简称FK) 检查约束(check):注意Oracle数据库有check约束,但是mysql没有,目前mysql不支持该约束。...(HY000): Field 'id' doesn't have a default value id是主键,因为添加了主键约束,主键字段中的数据不能为NULL,也不能重复 主键相关的术语 主键约束...: primary key 主键字段 : id字段添加primary key之后,id叫做主键字段 主键值 : id字段中的每一个值都是主键值。...建立学生和班级表之间的连接 t_student中的classno字段引用t_class表中的cno字段,此时t_student表叫做子表。t_class表叫做父表。

    1.9K50

    【MySQL】005.MySQL表的约束(上)

    站在正常的业务逻辑中: 如果班级没有名字,你不知道你在哪个班级 如果教室名字可以为空,就不知道在哪上课 所以我们在设计数据库表的时候,一定要在表中进行限制,满足上面条件的数据就不能插入到表中。...>insert into myclass (class_name) values ('高三三班'); ERROR 1364 (HY000): Field 'class_room' doesn't have...ERROR 1364 (HY000): Field 'name' doesn't have a default value mysql> insert into t13 (name,age,gender...,用的是default,如果建表中对应列默认没有设置default值,将无法插入。...default是作用在用户忽略了这一列的时候,如果设置了使用默认值,如果没有设置,直接报错。 如果我们在建表时没有设置默认值,mysql会对我们的表进行优化。

    26510

    数据库常见错误码

    前言 我们知道网页有他的状态码,比如最常见的404,500。都有他自己的含义,但是,在MySQL数据库里面也有他们的一个错误码,相信很多同学见过但是没有注意到吧。...,也没有默认值,那肯定是会出错,返回的错误码是1364,返回的错误信息是xxx字段没有默认值 解决方法:那么给设置一个默认值,或者给另外一个设置一个自增就可以不需要设置了 那么就给id设置一个自增吧 [...是存在字段没有默认值 4.1054 我们知道这个表的字段是id和name,那我要是插入数据的时候,插入的是不同字段名呢 我插入的字段改成username,运行 [5b34088971982852e1c3813ddf458c5d.png...我数据库test中没有user这个表,那我要执行查询user的表,会发生什么呢?...,不同的数据库是可以有同名的表的,所以可能其他数据库有user表,但是数据库test没有,你在数据库test中对这个user表进行操作的时候就会出现这样的错误 解决方法: 1.检查数据库名有没有写错,如果写错了就改成正确的名字

    1.4K11

    Mysql 培训

    1 – 255,假设没有BINARY项,则不分大写和小写,NCHAR表示使用缺省的字符集.在数据库 中以空格补足,但在取出来时末尾的空格将被去掉....table emp 中的全部资料,即使 emp_dept 中没有的资料也挑出来,没有的就用 NULL 来显示, # 也即显示资料是以左边的 table emp 中的资料为基础 mysql> select...:连接数据库失败,没有连接数据库的权限 1133:数据库用户不存在 1141:当前用户无权訪问数据库 1142:当前用户无权訪问数据表 1143:当前用户无权訪问数据表中的字段 1146...:数据表不存在 1147:没有定义用户对数据表的訪问权限 1149:SQL语句语法错误 1158:网络错误,出现读错误,请检查网络连接状况 1159:网络错误,读超时,请检查网络连接状况...1160:网络错误,出现写错误,请检查网络连接状况 1161:网络错误,写超时,请检查网络连接状况 1062:字段值反复,入库失败 1169:字段值反复,更新记录失败 1177:打开数据表失败

    6.1K10

    MySQL表的完整性约束

    ,会发现id2字段会使用默认值填充 mysql> insert into t13 (id1) values (111); Query OK, 1 row affected (0.00 sec) mysql...,所以不能单独向id2字段填充值; mysql> insert into t13 (id2) values (223); ERROR 1364 (HY000): Field 'id1' doesn't...have a default value # 向id1,id2中分别填充数据,id2的填充数据会覆盖默认值 mysql> insert into t13 (id1,id2) values (112,223...设置严格模式: 不支持对not null字段插入null值 不支持对自增长字段插入”值 不支持text字段有默认值 直接在mysql中生效(重启失效): mysql>set sql_mode...返回顶部 PRIMARY KEY 主键为了保证表中的每一条数据的该字段都是表格中的唯一值。换言之,它是用来独一无二地确认一个表格中的每一行数据。 主键可以包含一个字段或多个字段。

    3.8K20

    故障分析 | MySQL 无法修改主键?原来是因为这个参数

    1问题背景 同事咨询了一个问题,TDSQL(for MySQL)中的某张表主键需要改为联合主键,是否必须先删除现有的主键?因为删除主键时,提示这个错误。...,当设置了 sql_require_primary_key 参数,不能创建或改变一张没有主键的表。...解决方案是增加主键或者删除此参数避免错误,同时提醒了,如果表无主键,可能会导致基于行的复制产生性能问题。 sql_require_primary_key 参数控制的是强制检查主键,可以动态修改。...alter 语句时,对已存在的表进行修改,将会强制检查表中是否包含主键,如果没有主键,则会报错。...,就是删除主键,再创建主键的这段时间内,如果有主键字段的重复数据插入,就可能导致创建新的主键不成功。

    1.1K10

    【云原生进阶之数据库技术】第一章MySQL-2.2-数据库表基本操作

    ,可以给表的字段添加相应的约束,添加约束的目的是为了保证表中数据的合法性、有效性、完整性。...(简称FK) 检查约束(check):注意Oracle数据库有check约束,但是mysql没有,目前mysql不支持该约束。...ERROR 1364 (HY000): Field 'username' doesn't have a default value insert into t_user(id,username,password...1.15.5 外键约束 关于外键约束的相关术语: 外键约束:foreign key 外键字段:添加有外键约束的字段 外键值:外键字段中的每一个值。...A表中的字段引用B表中的字段,则A是子表,B是父表 删除数据的时候,先删除子表,再删除父表。添加数据的时候,先添加父表,再添加子表。创建表的时候,先创建父表,再创建子表。

    25310

    数据恢复binlog回放的一个报错问题

    : MySQL server has gone away 02 思路一 看到这个错误,我的第一反应是那两个timeout参数,分别是wait_timeout和interactive_timeout...,类似mysql客户端这种连接,默认值也是8小时。...如果连接的闲置时间大于这两个参数值,那么对应的连接将会被打断。经过查看,这两个参数的值都没有人为改变过,都是28800,也就是8小时。看来这个错误,和这两个参数的关系不大。...摘取了几个关键部分如下: 1、该参数的默认值是4MB,小的默认值是为了过滤那些比较大的通信包(过大的通信包被认为是有问题的) 2、当表中存在blob字段的时候,通常需要增加这个参数值,通信协议限制该参数的最大值为...4、mysql客户端上这个参数默认值是16M,mysqldump客户端上这个参数默认值是24M 看到这里,我做了个实验,先将server端的值改大点试试, set global max_allowed_packet

    90230

    MySQL数据库表约束详解

    站在正常的业务逻辑中: 如果班级没有名字,你不知道你在哪个班级 如果教室名字可以为空,就不知道在哪上课 所以我们在设计数据库表的时候,一定要在表中进行限制,满足上面条件的数据就不能插入到表中。...: mysql> insert into myclass(class_name) values('class1'); ERROR 1364 (HY000): Field 'class_room' doesn't...:数据在插入的时候不给该字段赋值,就使用默认值 mysql> insert into tt10(name) values('zhangsan'); Query OK, 1 row affected (0.00...第二个a(紧跟在CHANGE关键字后的两个参数中的第二个):这是修改后列的新名称(在这个特定情况下,它仍然是a,意味着列名没有改变)。...,不给值,会自动的被系统触发,系统会从当前字段中已经有的最大值 +1操作,得到一个新的不同的值。

    83300
    领券