MySQl 5.5 не усекает VARCHAR, когда они длиннее, чем ожидалось - PullRequest
0 голосов
/ 10 марта 2011

У меня есть такая проблема: до 5.5 mySQL (используя таблицы myISAM) использовался для усечения типов VARCHAR до длины столбца.Теперь, начиная с вышеупомянутой версии, это больше не так.Это огромная проблема, поскольку она ломает мое приложение (я знаю, что такой проблемы быть не должно, но я этого не делал ... Мне просто нужно с этим справиться, поэтому, пожалуйста, будьте терпеливы).Есть ли способ установить это поведение в 5.5?

Я пытался установить SQL-MODE = "STRICT_TRANS_TABLES", как я где-то читал, это поможет ... Это не так ...

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

Пожалуйста, помогите!

Ответы [ 2 ]

0 голосов
/ 21 марта 2011

Проблема была в параметре драйвера JDBC.Фактически он был настроен на выдачу исключений в случае усечения.Изменение конфигурации решило это.

0 голосов
/ 10 марта 2011

Какой SQL_MODE вы используете?Это тот же самый, который вы использовали до обновления до 5.5?Я подозреваю, что это не так.

Я использую 5.5.8 с SQL_MODE = '', и неявное усечение по-прежнему работает так же, как и в более старых версиях (5.0, 5.1 и т. Д.)

Поэтому я подозреваю, что ваша проблема в том, что вы изменили SQL_MODE, а не обновили до 5.5.

Проверьте текущий SQL_MODE:

SELECT @@SQL_MODE;

Установите для SQL_MODE значение '':

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