[Résolu] Create TEMPORARAY TABLE à partir de 2 tables temp.
Posté : 09 mai 2012, 16:38
Bonjour,
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
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.
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.