{MySQL} procédure stoquée d'archivage

Résolu/Fermé
matdev Messages postés 26 Date d'inscription mardi 19 mai 2009 Statut Membre Dernière intervention 6 janvier 2011 - 14 oct. 2009 à 11:21
matdev Messages postés 26 Date d'inscription mardi 19 mai 2009 Statut Membre Dernière intervention 6 janvier 2011 - 14 oct. 2009 à 16:21
Bonjour à tous,
je connais un peu mysql que j'utilise pour mes applications php mais je ne me suis jamais servi des procédures.
Aujourd'hui, je pense que celà me serait utile pour réaliser des traitement dépuration et d'archivage de ma base.
Par exemple, j'ai une table 'clients' dont j'initialise un champ datetime 'closed' lorsque le contrat avec ce client est terminé. Est-il possible par une procédure de stocker chaque mois les lignes fermées le mois précédant dans une tables 'clients_archive' et comment ?
Merci

1 réponse

matdev Messages postés 26 Date d'inscription mardi 19 mai 2009 Statut Membre Dernière intervention 6 janvier 2011 5
14 oct. 2009 à 16:21
C'est bon j'ai trouvé une solution qui me permet d'archiver et d'épurer toutes les informations fermées les mois précédents

CREATE PROCEDURE `testarchivage`()
BEGIN
  CREATE TABLE clients_archivage LIKE clients ;
  INSERT INTO clients_archivage SELECT * FROM clients WHERE closed IS NOT null and MONTH(closed)<=MONTH(date_sub(now(),INTERVAL 1 MONTH)) AND YEAR(closed)<=YEAR(now());
  DELETE FROM Clients WHERE closed IS NOT null and MONTH(closed)<=MONTH(date_sub(now(),INTERVAL 1 MONTH)) AND YEAR(closed)<=YEAR(now());
END
0