Segue abaixo os problemas conhecidos com tabelas
MERGE
:
Uma tabela MERGE
não pode manter
restrições UNIQUE
sobre toda tabela.
Quando você faz um INSERT
, os dados vão
para a primeira ou última tabela (de acordo com
INSERT_METHOD=xxx
) e estas tabelas
MyISAM
asseguram que os dados são
únicos, mas não se sabe nada sobre outras tabelas
MyISAM
.
DELETE FROM tabela_merge
usado sem um
WHERE
só limpará o mapeamento da
tabela, não deletando tudo na tabela mapeada.
RENAME TABLE
em uma tabela usada por uma
tabela MERGE
ativa pode corromper a
tabela. Isto será corrigido no MySQL 4.1.x.
Criação de uma tabela do tipo MERGE
não verifica se o tabelas selecionadas são de tipos
compatíveis ou se elas existem. O MySQL fará uma
verificação rápida de se o tamanho do registro é igual
entre tabelas mapeadas quando a tabela
MERGE
é usada, mas esta não é uma
verificação total.
Se você usar tabelas MERGE
deste modo,
você poderá obter problemas estranhos.
Se você usar ALTER TABLE
para adicionar
primeiro um índice UNIQUE
em uma tabela
usada em uma tabela MERGE
e então usar
ALTER TABLE
para adicionar um índice
normal na tabela MERGE
, a ordem da chave
será diferente para as atabelas se houvesse uma chave não
única antiga na tabela. Isto ocorre porque ALTER
TABLE
coloca chaves UNIQUE
antes de chaves normais para estar apto a detectar chaves
duplicadas o mais rápido possível.
DROP TABLE
em uma tabela que está em uso
por uma tabela MERGE
não funcionará no
Windows porque o mecanismo de armazenamento
MERGE
faz o mapeamento da tabela
escondido da camada mais alta do MySQL. Como o Windows não
permite que você apague arquivos que estejam abertos, você
deve primeiro descarregar todas as tabelas
MERGE
(com FLUSH
TABLES
) ou apagar a tabela
MERGE
antes de apagar a tabela. Nós
consertaremos isto assim que introduzirmos
VIEW
s.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.