mysql で、既存のテーブルを次のように変更してみました。
ALTER TABLE `etexts` CHANGE `etext` `etext` VARCHAR( 100 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT NULL
私は応答を得ました:
#1067 - Invalid default value for 'etext'
なんで?
mysql で、既存のテーブルを次のように変更してみました。
ALTER TABLE `etexts` CHANGE `etext` `etext` VARCHAR( 100 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NOT NULL DEFAULT NULL
私は応答を得ました:
#1067 - Invalid default value for 'etext'
なんで?
矛盾しNOT NULL
ています... ですが、デフォルトにしますNULL
...
削除して次のようにDEFAULT NULL
変更NOT NULL
しNULL
ます。
ALTER TABLE `etexts` CHANGE `etext` `etext` VARCHAR( 100 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL;
NOT NULL 列をデフォルトで NULL にすることはできません。
NULLable にしたい場合は、
... COLLATE latin1_swedish_ci NULL
列に値が指定されていない場合、NULLABLE 列はデフォルトで自動的に NULL になります。