При работе с таблицами 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.