Créer une table temporaire

Parfois, il est préférable ou nécessaire de passer par une table temporaire pour insérer / mettre a jour des données.
Ca vous permet d’insérer les données et eventuellement de vérifier la table temporaire avant de permutter les 2 tables.
Par exemple, vérifier que votre table comporte au moins 10 éléments ou n’est pas vide.

  1.  
  2. //j'efface la table temporaire si elle existe :
  3. $res=mysql_query("drop table if exists my_table_tmp");
  4. if ($res==false) die("Erreur mysql ".mysql_error());
  5.  
  6. //je récupére la structure de la table maitre
  7. $res=mysql_query("show create table my_table");
  8. if ($res==false) die("Erreur mysql ".mysql_error());
  9. $row=mysql_fetch_row($res);
  10. $create=$row[1];
  11.  
  12. //je substitue le nom de ma table maitre pour créer ma table temporaire
  13. $create=str_replace("my_table","my_table_tmp",$create);
  14. //je crée ma table temporaire.
  15. $res=mysql_query($create);
  16. if (!$res) die("Erreur mysql ".mysql_error());
  17.  

La requete utilisant RENAME TABLE est pratique pour ce cas :

  1.  
  2. RENAME TABLE my_table TO my_table_backup, my_table_tmp TO my_table;
  3.  

en PHP ca donne :

  1.  
  2. //Je permutte les tables
  3. $res=mysql_query("RENAME TABLE my_table TO my_table_backup, my_table_tmp TO my_table");
  4. if (!$res) die("Erreur mysql ".mysql_error());
  5.  
Partager et découvrir : Ces icônes sont des liens vers des sites de partage de signet sociaux où les lecteurs peuvent partager et découvrir de nouveaux liens.
  • bodytext
  • del.icio.us
  • Netvouz
  • description
  • ThisNext
  • MisterWong
  • Wists
  • Scoopeo
  • Technorati
  • Wikio

Tags :

2 commentaires

je voudrais savoir comment fonctionner avec mysql de php

BOUBA ABBA
September 21st, 2007 at 14:59

je voudrais savoir comment créer une table temporaire

rekelmi
March 31st, 2009 at 11:06

Laisser un commentaire

Name (required)

Mail (will not be published) (required)

Website

Commentaire