Pavnay

 
  • Increase font size
  • Default font size
  • Decrease font size
FrançaisEnglish

[MySQL] Création d'un table de sauvegarde horodatée

Imprimer
MySQL

Il est parfois utile de pouvoir créer une table de sauvegarde juste avant de faire une mise à jour des données dans un script SQL.
Mais si le script doit s'exécuter fréquement, la table de sauvegarde doit être horodatée. Cependant, il n'est pas possible de créer une table en utilisant une fonction (comme CREATE TABLE MyTable_CURDATE() ).




Pour y remédier, l'usage des Prepared Statements est des plus pratique :

SET @CUR:=CURDATE() +0;
SET @createTab=CONCAT("CREATE TABLE MyTable_",@CUR , " LIKE MyTable;");

PREPARE stmt FROM @createTab;
EXECUTE stmt;
DEALLOCATE PREPARE stmt; 


Pour rappel, il est possible de créer des tables de sauvegarde de différentes manières :

Méthode 1:

CREATE TABLE MyTable_BACKUP LIKE MyTable;
INSERT INTO MyTable_BACKUP SELECT * FROM MyTable;


Méthode 2 :

CREATE TABLE MyTable_BACKUP SELECT * FROM MyTable; 


La première méthode est la plus longue car lors de la création de la table de sauvegarde, celle-ci hérite des index de la table originelle. Ainsi la commande d'insertion oblige à recalculer les index de la table de sauvegarde.
La seconde méthode crée une table ayant la même structure que la table originelle mais sans les index, ainsi les insertions des données n'imposent pas les mises à jour des index.

Commentaires
Ajouter un nouveau
+/-
Ecrire un commentaire
Nom:
Email:
 
Titre:
 
:D:):(:0:shock::confused:8):lol::x:P:oops::cry:
:evil::twisted::roll::wink::!::?::idea::arrow:
 

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

 

Actualités

Peinture sur figurine