Безопасно ли мне отключать STRICT_TRANS_TABLES? - PullRequest
0 голосов
/ 23 февраля 2019

Мой сервер PHP / mySQL, размещенный на внешнем сайте, работает нормально с 2014 года. Недавно он начал выдавать ошибки «Поле не имеет значения по умолчанию».

Я проверил конфигурацию и обнаружил STRICT_TRANS_TABLES, который дает эти ошибки для полей без значения по умолчанию в некоторых случаях.

Мой вопрос заключается в том, безопасно ли мне удалять это значение конфигурации.Это mySQL 5.5.5-10.3.12-MariaDB.

В качестве альтернативы я мог бы указать все значения по умолчанию, но я не знаю, какое из этих решений более вероятно приведет к тому, что существующая кодовая база перестанет работать должным образом.

1 Ответ

0 голосов
/ 23 февраля 2019

Я рекомендую использовать строгий режим в MySQL, потому что если вы отключите строгий режим, вы рискуете вызвать некоторые нежелательные эффекты, такие как:

  • Если вы вставите значение в столбец, в котором ононе может соответствовать, значение молча усекается.Как вставка длинной строки в более короткий столбец varchar или вставка большого целого числа в столбец INT.Это приводит к тому, что в вашей базе данных могут быть фиктивные значения.Я предпочитаю, чтобы эти случаи были ошибками, чтобы не допустить таких поддельных значений.

  • Не строгий режим допускает бессмысленные даты, такие как 0000-00-00.В календаре такой даты нет.Я бы предпочел, чтобы это значение не было разрешено.Если мне нужно будет обозначить отсутствие значения, я буду использовать NULL.

Будут ли эти случаи влиять на ваше приложение?Нет никакого способа, которым я или кто-либо еще на Переполнении Стека можем предсказать это.Вы должны проверить это сами.

...