2013-09-25 3 views
1

В конце this video говорящий говорит, что вы можете изменить настройки MySQL по умолчанию, чтобы предотвратить такие вещи, как автоматическое литье строки в целое число 0 при вставке строки в поле int, автоматическое усечение строк и многое другое.Как сделать MySQL MyISAM «строгим»?

Где эти настройки? Работают ли они на MyISAM?

ответ

2

Для получения дополнительной информации см. this website. Надеюсь, это вам поможет.

SET sql_mode='STRICT_TRANS_TABLES,NO_ZERO_DATE,NO_ZERO_IN_DATE'; 
+0

'STRICT_TRANS_TABLES' не будет работать для MyISAM, поскольку он не является транзакционным движком. 'STRICT_ALL_TABLES' может, с некоторыми оговорками. Подробнее см. В вашем дружественном руководстве. – ESG

+1

@TheVedge: Я выполнил запрос точно так же, как Анон отправил его, и он, похоже, отлично работает на моем MyISAM. Дает ошибки для плохо отформатированных дат, вставляя в столбцы без значений по умолчанию, строки, которые слишком длинны, вставляя строку в int ... не уверен, что я пропускаю какие-либо случаи, но это именно то, что я хотел. – mpen

+0

@Mark Это странно. Документация говорит иначе: http://dev.mysql.com/doc/refman/5.5/en/server-sql-mode.html#sqlmode_strict_all_tables. Рад, что он решил вашу проблему! – ESG

Смежные вопросы