Справочное руководство по MySQL версии 4.1.1-alpha


1.9.5.2 Открытые ошибки / особенности строения MySQL - часть 5


  • Если устанавливать столбец SET в неподдерживаемую величину, то эта величина будет игнорироваться.

  • При выполнении PROCEDURE на запросе, возвращающем пустой набор, в некоторых случаях PROCEDURE не будет преобразовывать столбцы.

  • При создании таблицы типа MERGE не происходит проверки, если лежащие в ее основе таблицы имеют совместимые типы.

  • Сервер MySQL пока еще не может обрабатывать величины NaN, -Inf и Inf с двойной точностью. Их использование вызовет проблемы при попытке экспорта или импорта данных. В качестве промежуточного решения мы должны изменить NaN на NULL (если возможно) и -Inf и Inf на минимальную или, соответственно, максимально возможную величину двойной точности.

  • LIMIT на отрицательных числах трактуются как большие положительные числа.

  • Если ALTER TABLE используется для того, чтобы сначала добавить индекс UNIQUE к таблице, которая входит в таблицу MERGE, а затем - чтобы добавить обычный индекс к таблице MERGE, то в случае, если существовал старый ключ, который не был уникальным в данной таблице, порядок ключей для таблиц будет различным. Это обусловлено тем, что ALTER TABLE помещает уникальные ключи перед обычными ключами, чтобы обеспечить возможность определять дублирующиеся ключи как можно раньше.

    В более ранних версиях MySQL известны следующие ошибки:

    • Можно получить зависший поток при выполнении DROP TABLE на таблице, которая является одной из числа многих таблиц, заблокированных с помощью LOCK TABLES.

    • В следующем случае может произойти аварийное завершение процесса:

      • Обработчик задержанных вставок имеет незаконченные вставки в таблицу.

      • LOCK table с помощью WRITE.

      • FLUSH TABLES.

      • В версиях сервера MySQL до 3.23.2 команда UPDATE, которая обновляла ключ с помощью WHERE на тот же самый ключ, может оказаться неудачной, поскольку данный ключ использовался для поиска записей и одна и та же строка может быть найдена много раз:

        UPDATE tbl_name SET KEY=KEY+1 WHERE KEY > 100;

        Обходным решением является использование:

        mysql> UPDATE tbl_name SET KEY=KEY+1 WHERE KEY+0 > 100;

        Эта команда будет работать, поскольку сервер MySQL не будет использовать индекс на выражениях в утверждении WHERE.

      • До версии сервера MySQL 3.23 все числовые типы трактовались как поля с фиксированной точкой. Это означает, что необходимо было указывать, сколько десятичных знаков должно содержать поле с плавающей точкой. Все результаты возвращались с правильным количеством десятичных знаков.

        В отношении ошибок, связанных со спецификой различных платформ, см. разделы о компилировании и переносе.




        Начало  Назад  Вперед