mysql - 我可以将VARCHAR默认值设置为NULL吗?

时间:2010-08-30 13:52:40

标签: mysql mysql-error-1067

在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' 

为什么?

2 个答案:

答案 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