MySQL: ошибка создания таблицы со значением по умолчанию enum

Когда я создаю таблицу в PhpMyAdmin, Я получаю эту ошибку:

# 1067 — Неверное значение по умолчанию для ‘htmlstate’

Запрос на создание таблицы:

CREATE TABLE `cms_article` (
`contentid` int(10) unsigned NOT NULL AUTO_INCREMENT,
`pagetext` mediumtext /*!40101 COLLATE latin1_bin */ NOT NULL,
`threadid` int(10) unsigned DEFAULT NULL,
`blogid` int(10) unsigned DEFAULT NULL,
`posttitle` varchar(255) /*!40101 COLLATE latin1_bin */ DEFAULT NULL,
`postauthor` varchar(100) /*!40101 COLLATE latin1_bin */ DEFAULT NULL,
`poststarter` int(10) unsigned DEFAULT NULL,
`blogpostid` int(10) unsigned DEFAULT NULL,
`postid` int(10) unsigned DEFAULT NULL,
`post_posted` int(10) unsigned DEFAULT NULL,
`post_started` int(10) unsigned DEFAULT NULL,
`previewtext` varchar(2048) /*!40101 COLLATE latin1_bin */ DEFAULT NULL,
`previewimage` varchar(256) /*!40101 COLLATE latin1_bin */ DEFAULT NULL,
`imagewidth` int(10) unsigned DEFAULT NULL,
`imageheight` int(10) unsigned DEFAULT NULL,
`previewvideo` mediumtext /*!40101 COLLATE latin1_bin */,
`htmlstate` enum('off','on','on_nl2br') /*!40101 COLLATE latin1_bin */ NOT NULL DEFAULT 'off',
PRIMARY KEY (`contentid`)
) ENGINE=InnoDB AUTO_INCREMENT=503 /*!40101 DEFAULT CHARSET=latin1 */ /*!40101 COLLATE=latin1_bin */;

2

Решение

В более ранних версиях MySQL вы можете просто объявить это NOT NULL:

Если объявлен столбец ENUM для разрешения NULL, значение NULL является
допустимое значение для столбца, а значением по умолчанию является NULL. Если ENUM
столбец объявлен как NOT NULL, его значением по умолчанию является первый элемент
список допустимых значений.

(От Вот.)

Первое значение 'off' будет использоваться в вашем случае.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]