在 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