invalid use of NULL value,数据库invalid default value for

  invalid use of NULL value,数据库invalid default value for

  1.问题描述

  要将 information 表中的 number 列更改为非空,可以使用数据库查询语句“alter table information modify number varchar(255)not NULL”来更改其他列,但编号列表是错误的,错误消息是无效使用空值。

  很奇怪,其他列都可以用这个命令检查,为什么只有编号的列不能检查。

  2.错误的原因

  出现此错误的原因可能是现有数据的“数字”列为空,这与not null的设置相冲突。(找出原因)。

  我觉得是因为这个列的表结构在新数据表开始的时候就已经设置好了,后面更改的时候会和之前的设置冲突(至于为什么这里不能更改,我不是很明白),因为我之前创建新表的时候设置了编号列的结构属性。

  因为它不能设置为非null,所以您可以通过创建一个新列并设置为not null来成功实现。

  3.解决方法

  1)添加一个新柱,并设置该柱的结构属性。

  alter table information首先添加列“yyy”varchar(255)not null;-在第一列中添加新列yyy。

  2)将错误列的内容复制到新列,并删除错误列。

  更新集合yyy= number-将“数字”列中的所有值复制到yyy列。

  更改表信息删除“数字”;-删除错误的列。

  3)将新的列名修改为有错误的列名。

  alter table information change yyy number varchar(255)不为nullnull

invalid use of NULL value,数据库invalid default value for