问题场景 先来看个场景: 执行一条插入语句,因为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)”对应。...错误类型 也就是条件:SQLSTATE ‘字符串错误码’ :表示长度为5的sqlstate_value类型的错误代码; MySQL_error_code :匹配数值类型错误代码;错误名称 :表示DECLARE...SQLWARNING :匹配所有以01开头的SQLSTATE错误代码;NOT FOUND :匹配所有以02开头的SQLSTATE错误代码;SQLEXCEPTION :匹配所有没有被SQLWARNING或
错误:1364 SQLSTATE: HY000 (ER_NO_DEFAULT_FOR_FIELD) 消息:字段’%s’没有默认值。...错误:1394 SQLSTATE: HY000 (ER_VIEW_NO_INSERT_FIELD_LIST) 消息:不能在没有字段列表的情况下插入联合视图’%s.%s’。...错误:1423 SQLSTATE: HY000 (ER_NO_DEFAULT_FOR_VIEW_FIELD) 消息:视图’%s.%s’基本表的字段没有默认值。...错误:1462 SQLSTATE: HY000 (ER_FIELD_NOT_FOUND_PART_ERROR) 消息:在表中未发现分区函数字段列表中的字段。...错误:1476 SQLSTATE: HY000 (ER_BLOB_FIELD_IN_PART_FUNC_ERROR) 消息:在分区函数中,不允许使用BLOB字段。
· 错误:1230 SQLSTATE: 42000 (ER_NO_DEFAULT) 消息:变量'%s'没有默认值。...· 错误:1364 SQLSTATE: HY000 (ER_NO_DEFAULT_FOR_FIELD) 消息:字段'%s'没有默认值。...· 错误:1394 SQLSTATE: HY000 (ER_VIEW_NO_INSERT_FIELD_LIST) 消息:不能在没有字段列表的情况下插入联合视图'%s.%s'。...· 错误:1423 SQLSTATE: HY000 (ER_NO_DEFAULT_FOR_VIEW_FIELD) 消息:视图'%s.%s'基本表的字段没有默认值。...· 错误:1462 SQLSTATE: HY000 (ER_FIELD_NOT_FOUND_PART_ERROR) 消息:在表中未发现分区函数字段列表中的字段。
SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xF0\x9F\x98\x8B\xF0\x9F...' for column...因为那个页面有富文本编辑器,所以很快的推断出了这是因为数据里有 emoji 表情导致的报错 解决办法如下: 1.设置该字段的字符编码 ALTER TABLE 表名 CONVERT TO CHARACTER...SET utf8mb4 COLLATE utf8mb4_unicode_ci; 2.修改 Laravel 配置 config/database.php 'mysql' => [ 'driver...utf8mb4_unicode_ci', 'prefix' => '', 'strict' => true, 'engine' => null, ] 首发自:Laravel
不仅仅是DUPLICATE KEY INSERT IGNORE不仅仅会忽略DUPLICATE KEY错误,也会忽略非空错误 数据库有表student如下: mysql> show create table...---+ 1 row in set (0.00 sec) 因为class_id非空,所以插入失败 mysql> insert into student(name) values("tenmao"); ERROR...1364 (HY000): Field 'class_id' doesn't have a default value 使用ignore后插入失败,class_id被设置为int的默认值0 mysql...tenmao | 0 | | 2 | | 1 | +----+--------+----------+ 2 rows in set (0.00 sec) 字段...NOT NULL是为了防止插入时漏掉这个字段,但是使用INSERT IGNORE后,会自动设置一个没有用的默认值,导致系统数据错误。
前言 本文主要介绍了关于Laravel 5.4因特殊字段太长导致migrations报错的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: laravel 5.4 改变了默认的数据库字符集...MySQL 需要v5.7.7或者更高版本,当你试着在一些MariaDB或者一些老版本的的MySQL上运行 migrations 命令时,你会碰到下面这个错误: [IlluminateDatabaseQueryException...] SQLSTATE[42000]: Syntax error or access violati/【php教程_linux常用命令_网络运维技术】/on: 1071 Specified key was...[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes...解决方法 经过查询,我们可以在 AppServiceProvider.php 文件里的 boot 方法里设置一个默认值: <?
1,问题描述 最近建了个 Laravel 项目,当配置好 MySQL 数据库进行请求时,页面报如下错误: SQLSTATE[HY000] [2054] The server requested authentication...method unknown to the client (SQL: select * from user where id = 3) Previous exceptions SQLSTATE[HY000...由于我用的是 mac 电脑,安装后默认是没有这个配置文件的,执行如下命令添加配置文件: 1 sudo vi /etc/my.cnf (2)按下 i 进入编辑模式,添加如下内容(把加密模式改成旧的
'name' => env('APP_NAME', 'Laravel') 到这里这句代码的意思就很明显了,从 .env 获取 APP_NAME 的值,如果 .env 中不存在 APP_NAME 那就取默认值...其中有一行写了 .env ,它的作用就是告诉 git 忽略 .env 文件,所以如果你去 github 上看别的 laravel 项目的时候你会发现并没有 .env 文件..../config 目录下的数据库的配置 laravel 5.4 以后默认使用 utf8mb4 字符集,utf8mb4 主要是用来支持 emoji 表情的,如果你的本地环境的mysql 低于5.7.7,为了防止在以后使用的过程中报如下错误...[Illuminate\Database\QueryException] SQLSTATE[42000]: Syntax error or access violation: 1071...除了数据库还有两个需要改的打开 config/app.php文件把 timezone 改为 PRC ,laravel 默认的时区是 UTC中国的时区是 PRC 如果没有改的话, 那数据库存自动生成的时间会和我们的实际相差
1364 (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
laravel 5.4 改变了默认的数据库字符集,现在utf8mb4包括存储emojis支持。如果你运行MySQL v5.7.7或者更高版本,则不需要做任何事情。...当你试着在一些MariaDB或者一些老版本的的MySQL上运行 migrations 命令时,你可能会碰到下面这个错误: [Illuminate\Database\QueryException] SQLSTATE...[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes...(SQL: alter table users add unique users_email_unique(email)) [PDOException] SQLSTATE[42000]: Syntax...文件里的 boot 方法里设置一个默认值: <?
提起Web始终不能绕过一个语言,那就是PHP,而要说到PHP的Web框架,对于php开发工程师而言,ThinkPHP和Laravel应该都是必须掌握好的框架,甚至需要熟练乃至精通一个框架!...错误代码 [10501] PDOException in Connection.php line 390 SQLSTATE[HY000]: General error: 1030 Got error 28...,非调试模式有效 'error_message' => '页面错误!...请稍后再试~', // 显示错误信息 //'show_error_msg' => false, 'show_error_msg' => true,...很明显,开启和关闭,就是在true和false修改,而网页正常的错误提示就是'error_message' => '页面错误!
起因 今天安装laravel-admin的时候遇到了个SQL错误,大概就是下面这样: SQLSTATE[42000]: Syntax error or access violation: 1071...在app\Providers\AppServiceProvider.php添加默认值 修改前: <?...结果 结果还是报错,正当我暴跳如雷的时候,突然看见了错误的原因,好嘛,原来是数据表已存在啊,直接去数据库把所有数据表都删掉。...完美解决~ 如无特殊说明《关于laravel-admin安装时的错误》为博主MoLeft原创,转载请注明原文链接为:https://moleft.cn/post-161.html
定义条件使用 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 :匹配所有没有被
value,没有使用DEFAULT子句时,默认值为NULL。...参数和mysql_error_code参数都可以表示MySQL的错误。...例如ERROR 1146 (42S02)中,sqlstate_value值是42S02,mysql_error_code值是1146。...【示例6】 下面定义"ERROR 1146 (42S02)"这个错误,名称为can_not_find。...SQLEXCEPTION捕获所有没有被SQLWARNING或NOT FOUND捕获的sqlstate_value值,然后执行EXIT操作,并且输出"ERROR"信息。
value,没有使用DEFAULT子句时,默认值为NULL。...参数和mysql_error_code参数都可以表示MySQL的错误。...例如ERROR 1146 (42S02)中,sqlstate_value值是42S02,mysql_error_code值是1146。...【示例14-6】 下面定义"ERROR 1146 (42S02)"这个错误,名称为can_not_find。...SQLEXCEPTION捕获所有没有被SQLWARNING或NOT FOUND捕获的sqlstate_value值,然后执行EXIT操作,并且输出"ERROR"信息。
SELECT语句从employee表查询num值等于emp_id的记录,并将该记录的name字段的值返回。...value,没有使用DEFAULT子句时,默认值为NULL。...例如ERROR 1146 (42S02)中,sqlstate_value值是42S02,mysql_error_code值是1146。...SQLEXCEPTION表示所有没有被SQLWARNING或NOT FOUND捕获的sqlstate_value值。sp_statement表示一些存储过程或函数的执行语句。...SQLEXCEPTION捕获所有没有被SQLWARNING或NOT FOUND捕获的sqlstate_value值,然后执行EXIT操作,并且输出"ERROR"信息。
= (byte) '#'; private static final byte[] DEFAULT_SQLSTATE = "HY000".getBytes(); public byte...[] sqlState = DEFAULT_SQLSTATE; public byte[] message; } Select和ResultSet报文 如果执行的SQL是select语句,则返回的报文比较复杂...每一行(row)又分好field_count个字段,这个field_count将会在比Row还高一层的Result格式中描述,下面有详解。...每一个字段都是一个length-value对,length长度是3byte,其读取方法很特殊,现在直接用代码表述: public int readUB3() { final byte...Step5:如果读到任何一个error包后,此此读取结束,抛出错误。
领取专属 10元无门槛券
手把手带您无忧上云