mysql ”Invalid use of null value“ 解决方法
2016-07-06 15:26
633 查看
1.问题描述
因为要更改"information"表中的"编号"列为非空,使用数据库查询语句“alter table information modify '编号'
varchar(255) not null”可以更改其他的列,但只是在编号列出错,错误信息为Invalid use of NULL value。
很是奇怪,其他列使用该命令可以查,为什么仅有编号列无法查。
2.错误原因
出现该错误的原因可能是因为已存在的数据的‘编号’列为null,与not null的设置冲突。(查到的原因)。
我自己认为是因为在刚开始新建数据表时,将该列的表结构已经设置,在后续进行更改的时候会因为与之前的设置有冲突(至于为什么这里更改时不能更改,我也没太理解),因为之前我在新建表的时候将编号列的结构属性设置了。
鉴于无法设置为非空,所以通过新建列并设置好not null,便可以成功。
3.解决办法
1)添加新列,设置列的结构属性。
alter table information add column 'yyy' varchar(255) not null first; -新添加列yyy至第一列.
2)将出错的列内容复制到新列中并删除出错列
update information set yyy='编号'; ---将'编号'列的所有值复制到yyy列.
alter table information drop '编号'; ---删除出错的列.
3)修改新列名为出错的列名
alter table information change 'yyy' '编号' varchar(255) not
null;
祝你成功!
因为要更改"information"表中的"编号"列为非空,使用数据库查询语句“alter table information modify '编号'
varchar(255) not null”可以更改其他的列,但只是在编号列出错,错误信息为Invalid use of NULL value。
很是奇怪,其他列使用该命令可以查,为什么仅有编号列无法查。
2.错误原因
出现该错误的原因可能是因为已存在的数据的‘编号’列为null,与not null的设置冲突。(查到的原因)。
我自己认为是因为在刚开始新建数据表时,将该列的表结构已经设置,在后续进行更改的时候会因为与之前的设置有冲突(至于为什么这里更改时不能更改,我也没太理解),因为之前我在新建表的时候将编号列的结构属性设置了。
鉴于无法设置为非空,所以通过新建列并设置好not null,便可以成功。
3.解决办法
1)添加新列,设置列的结构属性。
alter table information add column 'yyy' varchar(255) not null first; -新添加列yyy至第一列.
2)将出错的列内容复制到新列中并删除出错列
update information set yyy='编号'; ---将'编号'列的所有值复制到yyy列.
alter table information drop '编号'; ---删除出错的列.
3)修改新列名为出错的列名
alter table information change 'yyy' '编号' varchar(255) not
null;
祝你成功!
相关文章推荐
- iOS小技巧-使用UUID+keychain替代udid方案
- COM中导出GUID
- EeasyUI常用组件(一)Datagrid
- uint8_t / uint16_t / uint32_t /uint64_t 是什么数据类型 - 大总结,看完全明白了
- easyui的formatter属性的用法
- IOS-65-解决UIAlertView导致界面弹出键盘的问题
- fuel 安装openstack 记录
- MyBatis:Parameter Maps collection does not contain value for
- UI混乱,很可能是变量名,被引入,且重复引起
- java.lang.IllegalArgumentException: 'dataSource' or 'jdbcTemplate' is required
- 用TexturePacker打图集用于UGUI中
- Android Bluetooth4.0 BLE开发官方文档介绍
- 3D模型--UITexture
- request.getContextPath()作用详解
- HTML/CSS Code Guide by Mark Otto:Mark Otto 编写的HTML
- FluentConsole是一个托管在github的C#开源组件
- JUC源码分析17-队列-ArrayBlockingQueue
- Unique Word Abbreviation
- IOS的UISlide
- usage of stack and queue