Rev 2493 | Blame | Compare with Previous | Last modification | View Log | RSS feed
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';SET GLOBAL SQL_MODE = 'NO_ENGINE_SUBSTITUTION,ALLOW_INVALID_DATES';-- Supprime le champ «publiable_eflore»ALTER TABLE `cel_images` DROP `publiable_eflore` ;-- Ajoute le champ «transmission» dans «cel_images»ALTER TABLE `cel_images` ADD `transmission` TINYINT(1) NOT NULL DEFAULT '0' AFTER `meta_autres`;-- Ajoute le champ «date_liaison» dans «cel_images»ALTER TABLE `cel_images` ADD `date_liaison` DATETIME NOT NULL AFTER `date_creation`;-- Ajoute le champ «date_transmission» dans «cel_images»ALTER TABLE `cel_images` ADD `date_transmission` DATETIME NULL AFTER `date_liaison`;-- Ajoute le champ «ce_observation» dans «cel_images»ALTER TABLE `cel_images` ADD `ce_observation` BIGINT NULL AFTER `id_image`;-- Met à jour la table cel_image avec les données de cel_obs_imagesSTART TRANSACTION;UPDATE cel_images AS ci, cel_obs_images AS coiSET ci.ce_observation = coi.id_observation,ci.date_liaison = coi.date_liaisonWHERE ci.id_image = coi.id_imageAND coi.id_image != '0';COMMIT;-- Ajout index sur ce_observationCREATE INDEX ce_observation ON cel_images (ce_observation);-- Ajout index sur transmissionCREATE INDEX transmission ON cel_images(transmission);-- Mise à jour du champ «transmission» de la table «cel_images» à partir des données de «cel_obs»START TRANSACTION;UPDATE cel_images AS ci, cel_obs AS coSET ci.transmission = co.transmission,ci.date_transmission = co.date_transmissionWHERE ci.ce_observation = co.id_observationAND (ci.ce_observation IS NOT NULL OR ci.ce_observation != 0);COMMIT;-- Suppression de la table cel_obs_image inutileRENAME TABLE cel_obs_images TO cel_obs_images_obsolete;-- ------------------------------------------------------- Champs ce_utilisateur de cel_obs peut être NULLALTER TABLE cel_obs CHANGE ce_utilisateur ce_utilisateur VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL;-- Suppression index id_obsALTER TABLE cel_obs DROP INDEX id_obs;-- Correction du champ ce_utilisateur pour la table cel_imagesSTART TRANSACTION;UPDATE cel_obs SET ce_utilisateur = NULLWHERE ce_utilisateur LIKE '%@%' OR ce_utilisateur = '';COMMIT;-- Correction index id_obsCREATE UNIQUE INDEX id_obs ON cel_obs (ordre, ce_utilisateur, courriel_utilisateur);-- Correction index date_creationALTER TABLE cel_obs DROP INDEX date_creation;CREATE INDEX utilisateur_date_creation ON cel_obs (ce_utilisateur, date_creation, id_observation);-- ------------------------------------------------------- Correction données en erreurs (bloque la génération des index)START TRANSACTION;SET @ordre = 1;UPDATE cel_images SET ordre = @ordre := @ordre+1WHERE ce_utilisateur = 20207 AND courriel_utilisateur = 'jardin-de-claire@orange.fr';COMMIT;START TRANSACTION;SET @ordre = 1;UPDATE cel_images SET ordre = @ordre := @ordre+1WHERE ce_utilisateur = 16501 AND courriel_utilisateur = 'alexis.joly@inria.fr';COMMIT;START TRANSACTION;SET @ordre = 1;UPDATE cel_images SET ordre = @ordre := @ordre+1WHERE ce_utilisateur = 10261 AND courriel_utilisateur = 'kti-moreau@orange.fr';COMMIT;START TRANSACTION;SET @ordre = 1;UPDATE cel_images SET ordre = @ordre := @ordre+1WHERE ce_utilisateur = 18989 AND courriel_utilisateur = 'laetitia.goeau@free.fr';COMMIT;START TRANSACTION;SET @ordre = 1;UPDATE cel_images SET ordre = @ordre := @ordre+1WHERE ce_utilisateur = 20667 AND courriel_utilisateur = 'catalina20@hotmail.fr';COMMIT;START TRANSACTION;SET @ordre = 1;UPDATE cel_images SET ordre = @ordre := @ordre+1WHERE ce_utilisateur = 11785 AND courriel_utilisateur = 'pierre.bonnet@cirad.fr';COMMIT;-- Champ ce_utilisateur de cel_images peut être NULLALTER TABLE cel_images CHANGE ce_utilisateur ce_utilisateur VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL;-- Correction index id_imageALTER TABLE cel_images DROP INDEX id_image;-- Correction du champ ce_utilisateur pour la table cel_imagesSTART TRANSACTION;UPDATE cel_images SET ce_utilisateur = NULLWHERE ce_utilisateur LIKE '%@%' OR ce_utilisateur = '';COMMIT;-- Correction index id_imageCREATE UNIQUE INDEX id_img ON cel_images (ordre, ce_utilisateur, courriel_utilisateur);-- Correction index ce_utilisateur_2ALTER TABLE cel_images DROP INDEX ce_utilisateur_2;CREATE INDEX utilisateur_date_creation ON cel_images (ce_utilisateur, date_creation, id_image);-- Correction du champ date_modification dans la table cel_imagesSTART TRANSACTION;UPDATE cel_imagesSET date_modification = GREATEST(IFNULL(date_creation, '0000-00-00 00:00:00'),IFNULL(date_transmission, '0000-00-00 00:00:00'),IFNULL(date_modification, '0000-00-00 00:00:00'),IFNULL(date_liaison, '0000-00-00 00:00:00'));COMMIT;-- Correction du champ date_modification dans la table cel_obsSTART TRANSACTION;UPDATE cel_obs AS co, cel_images AS ciSET co.date_modification = GREATEST(IFNULL(co.date_creation, '0000-00-00 00:00:00'),IFNULL(co.date_transmission, '0000-00-00 00:00:00'),IFNULL(co.date_modification, '0000-00-00 00:00:00'),IFNULL(ci.date_liaison, '0000-00-00 00:00:00'))WHERE co.id_observation = ci.ce_observation ;COMMIT;-- -----------------------------------------------------SET SQL_MODE=@OLD_SQL_MODE;SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;