7.2.1 Проблемы при работе с таблицами 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
перед
тем, как удалить таблицу. Эту ошибку мы планируем исправить одновременно с
введением VIEW
s.
Add your own comment.