文章目录

  • 1. 复现问题
  • 2. 分析问题
  • 3. 解决问题

1. 复现问题

今天在修改表application_apply中的create_gateway_application字段的默认值,却报出如是问题Invalid use of NULL value

因为application_apply是公司的数据表,不便演示。

  1. 因而,我在本地数据库中创建test数据表,并增加idnameaddress字段,如下代码所示:
CREATE TABLE `test` (`id` INT ( 0 ) NOT NULL auto_increment,`name` VARCHAR ( 255 ) NOT NULL,`address` VARCHAR ( 255 ) NULL,PRIMARY KEY ( `id` )
);
Query OK, 0 rows affected (0.05 sec)
  1. test表中增加两条数据,如下代码所示:
insert into test(name,address) value('陈希尔','江苏省无锡市新吴区旺庄路');
Query OK, 1 row affected (0.01 sec)mysql> insert into test(name) value('念兮为美');
Query OK, 1 row affected (0.01 sec)
  1. 查询test表中的数据,如下代码所示:
mysql> select * from test;
+----+----------+--------------------------+
| id | name     | address                  |
+----+----------+--------------------------+
|  1 | 陈希尔   | 江苏省无锡市新吴区旺庄路     |
|  2 | 念兮为美 | NULL                      |
+----+----------+--------------------------+
2 rows in set (0.00 sec)
  1. 此时,我若设置test表中的address字段的默认值,并修改属性为not null,如代码所示:
mysql> ALTER TABLE `test` MODIFY COLUMN `address` varchar(255)  NOT NULL DEFAULT '江苏省无锡市经开区';

却报出如下错误:

2. 分析问题

将上述报出的问题Invalid use of NULL value翻译成中文为无效使用空值,为什么说是无效使用空值呢?

正如上文中查出的address 值,如下图所示:

原来test表已存在的address 列存在为null的值,故而,与not null或者默认值的设置冲突(查到的原因)。

我认为在新建数据表时,将已设置该列address 的表结构。因而,在后续进行更改时会与之前的设置发生冲突(至于为什么这里更改时不能更改,我也没太理解),因为之前我在新建表的时候将编号列的结构属性设置了。

鉴于无法设置为非空,所以通过新建列并设置好not null,便可以成功。

3. 解决问题

使用如下方式解决问题:

  1. 将出错的列内容复制到新列中并删除出错列。
  • 创建名为address_cp的新列

mysql> ALTER TABLE `test` ADD COLUMN `address_cp` varchar(255) NOT NULL DEFAULT '江苏省无锡市经开区' COMMENT '地址' AFTER `address`;
Query OK, 0 rows affected (0.14 sec)
Records: 0  Duplicates: 0  Warnings: 0
  • 使用ifnull()函数将address列的所有值复制到address_cp'
mysql> update test set address_cp = ifnull(address,'江苏省无锡市经开区');
Query OK, 1 row affected (0.01 sec)
Rows matched: 3  Changed: 1  Warnings: 0
  • 删除address
mysql> alter table test drop address;
Query OK, 0 rows affected (0.15 sec)
Records: 0  Duplicates: 0  Warnings: 0
  1. 修改新列名称为出错列
  • 修改address_cp列为address
mysql> alter table test change column address_cp address varchar(255) NOT NULL DEFAULT '江苏省无锡市经开区' COMMENT '地址';
Query OK, 0 rows affected (0.02 sec)
Records: 0  Duplicates: 0  Warnings: 0
  • 新增数据时,不输入address值,其会采用默认值
mysql> insert into test(name) value('奔驰cc');
Query OK, 1 row affected (0.00 sec)
  • 查看数据,第3行的address就是采用默认值
mysql> select * from test;
+----+----------+--------------------------+
| id | name     | address                  |
+----+----------+--------------------------+
|  1 | 陈希尔   | 江苏省无锡市新吴区旺庄路 |
|  2 | 念兮为美 | 江苏省无锡市经开区       |
|  3 | 奔驰cc   | 江苏省无锡市经开区       |
+----+----------+--------------------------+
3 rows in set (0.00 sec)

解决 ‘Invalid use of NULL value‘ 问题相关推荐

  1. spring security CSRF 问题 Invalid CSRF Token 'null' was found on ......

    1. 问题 前面几篇博客 spring security在集成spring boot的微服务框架后,实现了cas认证和权限控制.但是在使用 postman 进行调用的时候出现这个问题 HTTP Sta ...

  2. 完美解决Invalid layout of java.lang.String at value问题的方法

    完美解决Invalid layout of java.lang.String at value问题的方法 参考文章: (1)完美解决Invalid layout of java.lang.String ...

  3. 解决INVALID BOUND STATEMENT (NOT FOUND)(MYBATIS的MAPPER绑定问题)

    解决INVALID BOUND STATEMENT (NOT FOUND)(MYBATIS的MAPPER绑定问题) 参考文章: (1)解决INVALID BOUND STATEMENT (NOT FO ...

  4. invalid use of null value

    给mysql的数据表的一个字段插入数据,不成功, 然后在数据表设计中,把不是null勾选上,又提示 invalid use of null value 这种情况比较尴尬 只能删掉这一个字段,然后新建一 ...

  5. Handshake failed due to invalid Upgrade header: null 解决方案

    Handshake failed due to invalid Upgrade header: null 解决方案 参考文章: (1)Handshake failed due to invalid U ...

  6. 解决invalid url domain

    解决invalid url domain的方案 获取url的时候去掉#号后面的数据 let url = window.location.href.split('#')[0] 1.检查后台是否设置:右上 ...

  7. 解决Invalid bound statement (not found): com.cqupt.ssm.dao.UserDao.queryMenu问题

    解决Invalid bound statement (not found): com.cqupt.ssm.dao.UserDao.queryMenu问题 参考文章: (1)解决Invalid boun ...

  8. 解决“Invalid bound statement (not found): com.lzj.admin.mapper.GoodsMapper.getGoodsInfoById”报错

    解决"Invalid bound statement (not found): com.lzj.admin.mapper.GoodsMapper.getGoodsInfoById" ...

  9. FTP中MLST概要解读---解决获取ftpFile为null的另外一种方式

    零.引言 之前写FTP工具库,用的是ftp4j,他使用其他非常简单方便,但是在细节上提供的可选项比较少(当然也可能是我了解不够深刻) 最新的项目重写了FTP工具类,选择了apache net中的ftp ...

最新文章

  1. 【C 语言】二级指针案例 ( 字符串切割 | 返回 二维数组 作为结果 )
  2. zookeper安装_ZooKeeper安装和配置
  3. python使用pip安装包_12.2.1 使用pip安装Python包
  4. UITableViewCell高度自适应变化
  5. cisco 交换机 获取 转发表_看完这份1113页的TCP/IP协议+路由与交换机,成功上岸字节跳动...
  6. bp神经网络预测模型实例,bp神经网络模型的建立
  7. 手势控制鼠标(源码)
  8. Python实现二维码扫码登录
  9. 站在思想层面看MVX架构
  10. args.verbose 的意思
  11. Android、IOS和Java三个平台一致的加密工具
  12. GB:香港城市大学孙燕妮组发表高准确度病毒株识别工具VirStrain
  13. win10分屏设置一边竖屏_win10两个显示器横屏和竖屏拓展
  14. WebJars简介 —— 前端资源的jar包形式
  15. 动态规划_ 选出一些数相加,问最后是m的倍数的方案有多少种
  16. [java] 分布式id生成方案
  17. 《PyTorch深度学习实践》 课堂笔记 Lesson7 神经网络多维特征输入的原理推导与实现
  18. 手把手教你使用 EndNote X9
  19. 爬虫微课5小时 python学习路线-余强-专题视频课程
  20. 无为一中2021高考成绩查询,高考成绩出来啦!2017无为各中学高考成绩喜报!!给所有教师点赞!!!...

热门文章

  1. 判断点在直线的左侧和右侧的方法及原理
  2. vue 鼠标点击特效动画(css3动画),水波纹动画效果
  3. Eigen库学习笔记(十三)Eigen实现softmax
  4. 机器视觉丨什么是同轴光源?打光示例和尺寸图
  5. c#读蓝牙数据_c#蓝牙通信接收数据
  6. 恒流恒压电源模块参数调节方法说明
  7. mp4压缩大小视频质量不变怎么做?快捷的压缩方法介绍分享
  8. yocto 一些细节
  9. 慕课网,乐字节 Java电商秒杀项目
  10. win10 android可以删吗,图文普及win10系统无法删除android的方式