Types de tables MySQL
<<<
Problèmes avec les tables MERGE Types de tables MySQL
>>>

15.2 Tables assemblées MERGE
15 Types de tables MySQL
 Manuel de Référence MySQL 4.1 : Version Française

->Problèmes avec les tables MERGE

15.2.1 Problèmes avec les tables MERGE

Voici une liste des problèmes connus avec les tables de type MERGE :

  • Si vous utilisez la commande ALTER TABLE pour modifier une table de type MERGE en un autre type de table, la liste des tables sous-jacentes sera perdue. Au lieu de cela, les lignes des tables seront copiées dans la nouvelle table, puis on lui assignera le nouveau type.
  • Avant MySQL 4.1.1, toutes les tables sous-jacentes et la table MERGE devaient être dans la même base de données.
  • REPLACE ne fonctionne pas.
  • Vous ne pouvez pas utiliser DROP TABLE , ALTER TABLE , DELETE FROM dans clause WHERE , REPAIR TABLE , TRUNCATE TABLE , OPTIMIZE TABLE , ou ANALYZE TABLE sur l'une des tables qui est dans une table MERGE ``ouverte''. Si vous faîtes cela, la table MERGE va utiliser la table originale, et vous obtiendrez des résultats étranges. Le plus simple est d'utiliser la commande FLUSH TABLES pour s'assurer qu'aucune table MERGE ne reste ``ouverte.''
  • Une table MERGE peut pas pas supporter de contrainte de type UNIQUE sur toute la table. Lorsque vous faites une insertion, les données vont dans la première ou la dernière table (suivant la méthode d'insertion INSERT_METHOD=xxx ) et cette table MyISAM s'assure que les données sont uniques, mais rien n'est fait pour vérifier l'unicité auprès des autres tables MyISAM tables.
  • Avant MySQL 3.23.49, DELETE FROM merge_table utilisé sans clause WHERE va uniquement détruire la table assemblée, mais ne va pas toucher les tables sous-jacentes. En fait, le fichier .MRG est effacé, mais pas les tables.
  • RENAME TABLE utilisé sur une table de type MERGE peut corrompre la table. Cela sera corrigé en MySQL 4.1.x.
  • La création d'une table de type MERGE ne vérifie pas si les tables sous-jacentes sont compatibles. Si vous utilisez une table MERGE de cette façon, vous devriez rencontrer des problèmes très étranges.
  • L'ordre des index dans la table MERGE et ses tables sous-jacentes doit être le même. Si vous utilisez la commande ALTER TABLE pour ajouter un index de type UNIQUE à une table qui est utilisée dans une table assemblée MERGE , puis que vous utilisez ALTER TABLE pour ajouter un index normal dans la table MERGE , l'ordre des clé sera différent suivant les tables, si jamais il y avait une vieille clé non unique. Ceci est dû au fait que ALTER TABLE place les clés UNIQUE avant les clés normales, pour être capable de détecter les doublons le plus tôt possible.
  • DROP TABLE sur une table qui est utilisé par une table MERGE ne fonctionne pas sous Windows car le gestionnaire de MERGE garde les connexions vers les tables cachées sous la couche MySQL. Comme Windows ne vous permet pas d'effacer une table qui est ouverte, vous devez d'abord fermer toute les tables MERGE (avec la commande FLUSH TABLES ) ou effacer la table MERGE avant de pouvoir effacer la table désirée. Nous allons corriger lorsque nous introduirons les vues. VIEW s.

<< Problèmes avec les tables MERGE >>
Types de tables MySQL Tables assemblées MERGE Types de tables MySQL