概要
状態:-
閲覧数:2,039
投稿日:2016-03-09
更新日:2016-03-09
不適切な整数値
・「int型カラムへ不適切な整数値を格納しようとした」ため発生するエラー
・「int型カラムへ不適切な整数値を格納しようとした」ため発生するエラー
遭遇例1.INT型カラムに空文字INSERT
INT型カラムに空文字INSERT
ダブルクオーテーション
INSERT INTO t (a,b) VALUES ("","");
#1366 - Incorrect integer value: '' for column 'a' at row 1
シングルクオーテーション
INSERT INTO t (a,b) VALUES ('','');
#1366 - Incorrect integer value: '' for column 'a' at row 1
遭遇例2.INT型カラムへ、VARCHARカラムより取得した値をINSERT
問題発生
#1366 - Incorrect integer value: '' for column 'parking' at row 3
原因
調査した結果、INT型カラムへ、VARCHARカラムより取得した値をINSERTしようとしていたことが判明
新たな問題発生
取得先のVARCHARカラムをINT型カラムへ変更しようとすると、既存データ影響により変更不可
対応
空文字をデフォルト値へ変更
UPDATE `ajaxsearch_master` SET `parking`=999 WHERE `parking`=''
取得先のVARCHARカラムをINT型カラムへ変更
ALTER TABLE `ajaxsearch_master` CHANGE `parking` `parking` INT NOT NULL DEFAULT '999';
最終的に
再度、試したところ、うまくいった
・取得先INT型カラム
・格納先INT型カラム