Проблемы при работе с таблицами MERGE
При работе с таблицами MERGE могут возникать следующие проблемы:
-
Для таблицы MERGE не могут поддерживаться ограничения UNIQUE по всей
таблице. При выполнении команды INSERT данные помещаются в первую или
последнюю таблицу (в соответствии с INSERT_METHOD=xxx) и для этой
таблицы MyISAM обеспечивается однозначность данных, но ей ничего не
известно о первой таблице MyISAM.
-
Команда DELETE FROM merge_table без оператора WHERE очищает только
распределение для таблицы, ничего не удаляя из преобразованных таблиц.
-
Использование команды RENAME TABLE над активной таблицей MERGE может
привести к повреждению таблицы. Эта ошибка будет исправлена в MySQL
4.0.x.
-
При создании таблицы типа MERGE не проверяется совместимость типов
базовых таблиц. Создав таблицу MERGE на основе несовместимых типов, вы
можете столкнуться с непредсказуемыми проблемами.
-
Если для первого добавления индекса UNIQUE в таблицу, преобразованную
в MERGE, используется команда ALTER TABLE, а затем командой ALTER
TABLE в таблицу MERGE добавляется нормальный индекс, порядок ключей
для таблиц будет разным, если в таблице был старый не однозначный
ключ. Это происходит потому, что команда ALTER TABLE помещает ключи
UNIQUE перед нормальными ключами, чтобы как можно раньше обнаружить
дублирующиеся ключи.
-
Оптимизатор диапазона пока не может эффективно использовать таблицу
MERGE, в связи с чем иногда возникают неоптимальные соединения. Это
будет исправлено в MySQL 4.0.x.
Команда DROP TABLE над таблицей, преобразованной в таблицу MERGE, не будет
работать под Windows, так как обработчик MERGE скрывает распределение
таблиц от верхнего уровня MySQL. Поскольку в Windows не разрешается
удалять открытые файлы, сначала необходимо сбросить на диск все таблицы
MERGE (при помощи команды FLUSH TABLES) или удалить таблицу MERGE перед
тем, как удалить таблицу. Эту ошибку мы планируем исправить одновременно с
введением VIEWs.
Содержание раздела