博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql ”Invalid use of null value“ 解决方法
阅读量:6941 次
发布时间:2019-06-27

本文共 697 字,大约阅读时间需要 2 分钟。

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

转载地址:http://rzwnl.baihongyu.com/

你可能感兴趣的文章
学习的知识
查看>>
【Cloud Foundry 应用开发大赛】todolist,日常管理应用
查看>>
MySql高级五--备份和恢复
查看>>
不止于小程序 APICloud推出react native纯翻译模式的UI引擎
查看>>
文件行数和代码行数统计
查看>>
如何知道一个十位数的二进制有多少个1
查看>>
Linux笔记之VMware网络连接
查看>>
Yii框架官方指南系列30——缓存:片段缓存(Fragment Caching)
查看>>
一个简单的sql加密方式
查看>>
安装与openSUSE基本使用
查看>>
简述Java:String、StringBuffer与StringBuilder 区别
查看>>
linux下一个网卡绑定多个ip
查看>>
PHP-MySQL-Apache环境搭建
查看>>
jenkins2.32 maven自动化部署配置
查看>>
Selenium2.0自动化测试中遇到的问题及解决方法
查看>>
Linux-0.11内核内存管理get_free_page()函数分析
查看>>
lambda表达式
查看>>
关于php连接mysql数据库
查看>>
flashback restore point是否能还原坏块
查看>>
Python 条件语句
查看>>