Как я могу сделать фатальные ошибки ВСЕ предупреждения MySQL? - PullRequest
9 голосов
/ 27 ноября 2010

Есть ли способ повысить все предупреждения mysql до фатальных ошибок?Я бы хотел избежать усечения данных (включая дробные части).

Ответы [ 2 ]

5 голосов
/ 27 ноября 2010

Я не могу сказать, будет ли это способствовать всем предупреждениям об ошибках, поэтому приносим извинения, если вы уже знаете об этом, но есть несколько режимов сервера MySQL , которые работа для вас:

ТРАДИЦИОННАЯ

Заставьте MySQL вести себя как «традиционная» система баз данных SQL. Простое описание этого режима - «выдавать ошибку вместо предупреждения» при вставке неверного значения в столбец.

STRICT_ALL_TABLES является частью TRADITIONAL:

Строгий режим контролирует, как MySQL обрабатывает входные значения, которые являются недопустимыми или отсутствуют. Значение может быть недействительным по нескольким причинам. Например, он может иметь неправильный тип данных для столбца или может быть вне диапазона

2 голосов
/ 27 ноября 2010

В некоторых режимах MySQL выдает предупреждения вместо ошибок, требуемых стандартом SQL.

Вы, конечно, хотите вызвать ошибку при удалении значимых данных, но вы, вероятно, не хотите, чтобы ошибка возникала, когда выражение COUNT (colname) находит несколько строк с нулями в столбце и игнорирует их для целей подсчета (стандарт предупреждение).

Поскольку MySQL становится более совместимым со Стандартом, могут быть добавлены предупреждения, которые не влияют на целостность данных.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...