在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'
为什么?
答案 0 :(得分:10)
这是矛盾的...... NOT NULL
,但请将其设为默认NULL
...
移除DEFAULT NULL
并将NOT NULL
更改为NULL
:
ALTER TABLE `etexts` CHANGE `etext` `etext` VARCHAR( 100 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL;
答案 1 :(得分:1)
您不能将NOT NULL列默认为NULL。
如果你希望它是NULLable那么
... COLLATE latin1_swedish_ci NULL
如果没有为列
提供值,则NULLABLE列将自动默认为NULL