je cherche depuis un bon moment ici et ailleurs comment fusionner deux tables complètement différentes.
La solution sur laquelle je planche actuellement est de créer deux tables temporaires à structures semblables pour ensuite les fusionner dans une troisième.
Voilà où j'en suis: la création des deux premières tables temporaires va très bien, mais lorsque vient temps d'exploiter la troisième, j'obtiens ce message d'erreur #1168 - Unable to open underlying table which is differently defined or of non-MyISAM type or doesn't exist
Les recherches sur internet me mènent à vérifier la structure, définir les index, définir le type des tables.
J'ai donc ajouter l'option "engine=MyISAM" à mes commandes, j'ai aussi défini des index.
Voici les commandes MySQL que j'essaie dans ma fenêtre phpmyadmin
CREATE TEMPORARY TABLE Actis ENGINE=MyISAM SELECT (id_activ + 100000) AS id, "a" AS Genre, LaDate AS LaDate, Titre AS Titre FROM plongee_activites WHERE MONTH( LaDate ) = 5 AND YEAR(LaDate) = 2012;
ALTER TABLE Actis ADD Key(id);
SELECT * FROM Actis;
CREATE TEMPORARY TABLE Cours ENGINE=MyISAM SELECT cours_id AS id, "c" AS Genre, cours_dteDeb AS LaDate, cours_titre AS Titre FROM plongee_cours WHERE MONTH( cours_dteDeb ) = 5 AND YEAR( cours_dteDeb ) = 2012;
ALTER TABLE Cours ADD Key(id);
SELECT * FROM Cours;
CREATE TEMPORARY TABLE Tout (`id` INT NOT NULL, Genre CHAR(1), `LaDate` DATE , `Titre` CHAR( 30 ) NOT NULL, INDEX(id)) TYPE=MERGE UNION=(Actis,Cours);
SELECT * FROM Tout;
Les commandes SELECT portées sur les deux premières tables temporaires n'y sont qu'à des fins de vérification.Notons cependant le résultat de la première - même si elle contient ENGINE=MyISAM:
unknown table status: TABLE_TYPE
unknown table status: Comment
Je soupçonne que ce soit une piste de solution, mais je n'arrive pas à imposer un TABLE_TYPE à cette table, croyant l'avoir fait dans ma commande.
Merci à l'avance de votre aide.