Très court article pour vous partager une astuce pour dupliquer une table MySQL. Je suis toujours surpris de voir des développeurs se mettre à coder lorsqu’il leur est demandé de dupliquer une table, peu importe la raison.
L’objectif va donc de créer une table d’historique à partir d’une table existante (order -> order_history):
mysql> CREATE TABLE order_history LIKE order; mysql> INSERT INTO order_history SELECT * FROM order;
La première requête va créer une table order_history à l’identique de order, index y compris.La seconde requête quant à elle, va simplement insérer l’ensemble des enregistrements de la table order dans order_history.
On aurait aussi pu ajouter des conditions sur la requête SELECT, ou même ne sélectionner que certains champs.
mysql> INSERT INTO order_history SELECT * FROM order WHERE created_at > "2015-03-26";
Et oui c’est tout …