MySQL - я могу установить значение по умолчанию VARCHAR как NULL? - PullRequest
3 голосов
/ 30 августа 2010

В 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 ]

10 голосов
/ 30 августа 2010

Это противоречиво ... 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 голос
/ 30 августа 2010

Нельзя иметь столбец NOT NULL со значением по умолчанию NULL.

Если вы хотите, чтобы оно было NULLable, тогда

... COLLATE latin1_swedish_ci NULL 

Для столбцов NULLABLE по умолчанию автоматически устанавливается значение NULL, если для столбца не указано значение

...