:: DEVELOPER ZONE
При работе с таблицами 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
перед
тем, как удалить таблицу. Эту ошибку мы планируем исправить одновременно с
введением VIEW
.
© 1995-2005 MySQL AB. All rights reserved.