3

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

为什么?

4

2 回答 2

11

这是矛盾的... NOT NULL,但将其设为默认值NULL...
删除DEFAULT NULL并更改NOT NULLNULL

ALTER TABLE  `etexts` CHANGE  `etext`  `etext` VARCHAR( 100 ) CHARACTER SET latin1 COLLATE latin1_swedish_ci NULL;
于 2010-08-30T13:53:55.850 回答
1

您不能将 NOT NULL 列默认为 NULL。

如果你希望它是 NULLable 那么

... COLLATE latin1_swedish_ci NULL 

如果没有为列提供值,NULLABLE 列将自动默认为 NULL

于 2010-08-30T13:56:23.427 回答