1

Тема: Ошибка в MySQL-запросе при создании таблицы

mySQL Error: Invalid default value for 'macro_set'
Query:CREATE TABLE ibf_macro ( macro_id smallint(3) NOT NULL auto_increment, macro_value varchar(200) default NULL, macro_replace text, can_remove tinyint(1) default '0', macro_set smallint(3) NOT NULL default '', PRIMARY KEY (macro_id), KEY macro_set (macro_set) ) TYPE=MyISAM;


немогу понять что указывать в default для macro_set тут наспиано " что это означает?

2

Re: Ошибка в MySQL-запросе при создании таблицы

У тебя противоречие в запросе: macro_set smallint(3) NOT NULL default ''

Либо укажи в одинарных кавычках что-нибудь (например, 'нет', если уж ты ограничиваешь поле 3 символами), либо убери NOT NULL.

Получается, что ты не разрешаешь оставлять поле пустым и в тоже время не задаешь никакого значения по умолчанию.

Жизнь прекрасна... пока Яндекс не глючит! wink

3

Re: Ошибка в MySQL-запросе при создании таблицы

halker
в принципе пример рабочий, единственно, что можно сделать, это сократить его выбросив default '' который так бесит mySQL. Дело в том, что для столбцов, объявленных с атрибутом NOT NULL - значением по умолчанию является пустая строка, поэтому указывать default '' - лишнее.

Stinger
NOT NULL указывает на то, что поле не может быть пустым, а с помощью default '' он указывает, что по-умолчанию выставляется пустая строка. Пустая строка это не пустое значение. wink