1. 程式人生 > >mysql ”Invalid use of null value“ 解決方法

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

font hang value time pda size 解決 SQ 通過

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

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