zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Map 嵌套存储Map
    LinkedList;以及迭代器Iterator
    计算某字符串中大写字母、小写字母以及数字的个数
    String字符串转多种类型及多种方法的应用
    String类的构造方法
    String类(附件)
    (五)Kubernetes集群安装
    (四)Kubernetes 网络通讯方式
    (三)Kubernetes-Pod概念
    (二)Kubernetes组件说明
  • 原文地址:https://www.cnblogs.com/lxwphp/p/15454359.html
Copyright © 2011-2022 走看看