[MySQL] Table temporaire

Table temporaire [MySQL] - SQL/NoSQL - Programmation

Marsh Posté le 28-12-2005 à 15:30:01    

Bonjour,
 
Je crée une table temporaire dans ma base de données mysql en utilisant la syntaxe suivante :
 

Code :
  1. CREATE TEMPORARY TABLE tmp_tbl AS select_statement


 
J'exécute la requête et elle passe sans problème. Et là deux (gros) soucis
 
1. tmp_tbl n'apparait pas dans ma liste de table  :heink:  
2. je ne peux pas utiliser ma table temporaire dans ma jointure  :cry:  
   => erreur 1146 : la table tmp_tbl n'existe pas  :fou:  
 
 
Quelqu'un a une idée ?


---------------
¤¤ Diamonds are the girls' best friends ¤¤
Reply

Marsh Posté le 28-12-2005 à 15:30:01   

Reply

Marsh Posté le 28-12-2005 à 17:32:11    

A tout hasard, entre le moment où tu crées la table tempo, et le moment où tu l'utilises, tu te déconnectes et te reconnectes ? :D

Reply

Marsh Posté le 29-12-2005 à 10:04:29    

dois-je répondre ...
 
autres idées ?


---------------
¤¤ Diamonds are the girls' best friends ¤¤
Reply

Marsh Posté le 29-12-2005 à 10:09:46    

couleur cafe a écrit :

dois-je répondre ...
 
autres idées ?


Bin oui, enfin au moins préciser comment tu utilises mysql pour tes requetes:
- en ligne de commande?
- dans phpmyadmin?
- dans un script php? (et dans ce cas montre le code)
 
Mais quoi qu'il arrive et comme le dis si bien la doc:

Citation :


You can use the TEMPORARY keyword when creating a table. A TEMPORARY table is visible only to the current connection, and is dropped automatically when the connection is closed.  


Donc si tu ne retrouves pas ta table, il y a de fortes chances que ta connexion ait été fermée.

Reply

Marsh Posté le 29-12-2005 à 10:21:39    

couleur cafe a écrit :

dois-je répondre ...
 
autres idées ?


Pourtant tu devrais t'en douter. "TEMPORAIRE" elle est existante le temps de la connexion, le temps de ton cycle de vie de ton script alors il ne faut pas s'étonner que tu ne puisse pas la voire dans phpmyadmin. si tu la voyais en permanence c'est une table permanente. Si tu pensais qu'elle serait permanente c'est qu'il y a un doute sur l'utilité d'utiliser une table temporaire.  [:chewyy]

Reply

Marsh Posté le 29-12-2005 à 16:51:24    

Si j'utilise une table temporaire c'est que j'ai quand même du aller lire la doc quelque part. Donc la réponse me semble évidente
 
     "non  :non:  je ne ferme pas ma connexion"
 
Sinon efectivement je n'ai pas précisé que je tapais mes requetes dans phpMyAdmin. Je voulais d'abord tester une requete avant de l'inserer dans mon code php (comme je pense ça se fait souvent).  
Donc je tape la requête et la table n'apparait pas. Puis quand je veux l'utiliser elle n'est pas reconnue.
Encore une fois je précise que je ne kille pas la connexion (car encore une fois je précise que j'ai lu la doc) mais si cette commande n'est pas utilisable par l'interface phpmyadmin, ça je l'avait zappé mais je ne vois pas pourkoi ça ne marcherait pas. :kaola:  
Et enfin pourquoi je m'em... à compulser de la doc et vouloir créer une table temporaire si je n'en ai pas besoin. J'arrive peut-être pas à créer mes tables temporaires mais j'ai vaguement entendu parlé de create table et drop table ... :sol:

Message cité 1 fois
Message édité par couleur cafe le 29-12-2005 à 16:52:11

---------------
¤¤ Diamonds are the girls' best friends ¤¤
Reply

Marsh Posté le 29-12-2005 à 16:59:08    

couleur cafe a écrit :

Si j'utilise une table temporaire c'est que j'ai quand même du aller lire la doc quelque part. Donc la réponse me semble évidente
 
     "non  :non:  je ne ferme pas ma connexion"
 
Sinon efectivement je n'ai pas précisé que je tapais mes requetes dans phpMyAdmin. Je voulais d'abord tester une requete avant de l'inserer dans mon code php (comme je pense ça se fait souvent).  
Donc je tape la requête et la table n'apparait pas. Puis quand je veux l'utiliser elle n'est pas reconnue.
Encore une fois je précise que je ne kille pas la connexion (car encore une fois je précise que j'ai lu la doc) mais si cette commande n'est pas utilisable par l'interface phpmyadmin, ça je l'avait zappé mais je ne vois pas pourkoi ça ne marcherait pas. :kaola:  
Et enfin pourquoi je m'em... à compulser de la doc et vouloir créer une table temporaire si je n'en ai pas besoin. J'arrive peut-être pas à créer mes tables temporaires mais j'ai vaguement entendu parlé de create table et drop table ... :sol:


:lol: mais arrête tu t'enfonces là!... tu oses dire que tu passe par phpmyadmin.
J'ai l'impression que tu n'as pas encore compris. Via phpmyadmin sa va fonctionner mais la table va exister le temps de l'execution de la commande mais lorsque la page reload tu n'as plus la table. Elle vit le temps du script executé donc 0.00050sec par exemple


Message édité par Berceker United le 29-12-2005 à 16:59:22
Reply

Marsh Posté le 29-12-2005 à 17:09:58    

En résumé : crée la table tempo et utilise la dans un même script PHP, dans une même connexion à la base, et dis-nous si ça ne marche toujours pas :)

Reply

Marsh Posté le 29-12-2005 à 17:33:47    

Tiens ben au moins j'aurais ma réponse !!
 
Désolée si pour moi y a une différence entre une connexion
 

Code :
  1. A TEMPORARY table is visible only to the current connection, and is dropped automatically when the connection is closed.   dixit le manuel


 
et un script, même si je suis la seule à la voir


---------------
¤¤ Diamonds are the girls' best friends ¤¤
Reply

Marsh Posté le 29-12-2005 à 17:39:14    

couleur cafe a écrit :

Tiens ben au moins j'aurais ma réponse !!
 
Désolée si pour moi y a une différence entre une connexion
 

Code :
  1. A TEMPORARY table is visible only to the current connection, and is dropped automatically when the connection is closed.   dixit le manuel


 
et un script, même si je suis la seule à la voir


phpmyadmin utilise quoi comme methode connexion ? pconnect ou connect ?
Quand il te dise dans la meme connexion il faut comprendre que dans le temps d'execution du script il ne faut pas qu'il y ait d'operation de deconnexion, reconnexion mais quand ton script est finit alors la table temporaire disparait.


Message édité par Berceker United le 29-12-2005 à 17:40:33
Reply

Marsh Posté le 29-12-2005 à 17:39:14   

Reply

Marsh Posté le 30-12-2005 à 12:31:11    

oki les gars c'était bien ça   :whistle:
j'ai importé un script ou je créais et utilisais la table temporaire c'est nickel.
 
Ben encore merci (c'est rare quand je trouve une réponse sur ce forum ...)
 
 :hello:


---------------
¤¤ Diamonds are the girls' best friends ¤¤
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed