mysql ”Invalid use of null value“ 解决方法

mysql ”Invalid use of null value“ 解决方法

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113291.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SQL学习(二):concat函数(连接字符串)

    SQL学习(二):concat函数(连接字符串)concat函数(连接字符串):使用方法:CONCAT(str1,str2,…)返回结果为连接参数产生的字符串。如有任何一个参数为NULL,则返回值为NULL。注意:如果所有参数均为非二进制字符串,则结果为非二进制字符串。如果自变量中含有任一二进制字符串,则结果为一个二进制字符串。一个数字参数被转化为与之相等的二进制字符串格式;若要避免这种情况,可使用显式类型cast,例如:SELECTCONCAT(CAST(int_colASCHAR),char_col)concat函数

    2022年5月3日
    124
  • npm卸载与安装(npm安装失败)

    1.卸载nodenpm(1)先卸载npm:sudonpmuninstallnpm-g  (2)然后卸载Node.js.  (2.1)如果是Ubuntu系统并使用apt-get安装的,可以使用命令:sudoapt-getremovenodejs  (2.2)源文件安装的node,卸载方式:首先cd到解压后到目录: sudom…

    2022年4月10日
    67
  • 动画图解:十大经典排序算法动画与解析,看我就够了!(配代码完全版)[通俗易懂]

    动画图解:十大经典排序算法动画与解析,看我就够了!(配代码完全版)[通俗易懂]排序算法是《数据结构与算法》中最基本的算法之一。排序算法可以分为内部排序和外部排序。内部排序是数据记录在内存中进行排序。而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括:时间复杂度与空间复杂度关于时间复杂度:…

    2022年10月9日
    3
  • geostudio渗流教程_曲面静水压力计算

    geostudio渗流教程_曲面静水压力计算大家好,我是小马老师。本文继续介绍lammps模拟薄膜过滤的案例代码。在前面推文中,已经介绍了模型的建模过程。薄膜建模方法模型经过minimize能量最小化之后,进入弛豫阶段。因弛豫阶段代码较长,不再一一介绍各部分代码的功能,仅对代码中的几个比较重要的功能进行详细介绍。(1)薄膜固定及活塞墙的加压控制在模拟过程中,过滤薄膜不能移动,使用fixsetforce命令对其进行固定。fix mysf1membranesetforce000活塞墙在y、z方向需要固定,在x方向允许移动

    2025年9月23日
    5
  • 反射

    反射

    2021年7月3日
    101
  • linux修改文件名字

    linux修改文件名字linux下重命名文件或文件夹使用mv既可实现。例子:①将一个名为abc.txt的文件重命名为1234.txt[root@station90root]#mvabc.txt1234.txt

    2022年7月26日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号