Subversion Repositories eFlore/Applications.cel

Rev

Rev 2470 | Rev 2485 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2470 Rev 2476
Line 19... Line 19...
19
-- Ajoute le champ «ce_observation» dans «cel_images»
19
-- Ajoute le champ «ce_observation» dans «cel_images»
20
ALTER TABLE `cel_images` ADD `ce_observation` BIGINT NULL AFTER `id_image`;
20
ALTER TABLE `cel_images` ADD `ce_observation` BIGINT NULL AFTER `id_image`;
Line 21... Line 21...
21
 
21
 
22
-- Met à jour la table cel_image avec les données de cel_obs_images
22
-- Met à jour la table cel_image avec les données de cel_obs_images
23
START TRANSACTION;
23
START TRANSACTION;
24
UPDATE cel_images, cel_obs_images 
24
UPDATE cel_images AS ci, cel_obs_images AS coi
25
SET cel_images.ce_observation = cel_obs_images.id_observation, 
25
SET ci.ce_observation = coi.id_observation, 
26
	cel_images.date_liaison = cel_obs_images.date_liaison 
26
	ci.date_liaison = coi.date_liaison 
27
WHERE  cel_images.id_image = cel_obs_images.id_image 
27
WHERE  ci.id_image = coi.id_image 
28
AND cel_obs_images.id_image != '0';
28
AND coi.id_image != '0';
Line 29... Line 29...
29
COMMIT;
29
COMMIT;
30
 
30
 
Line 31... Line 31...
31
-- Ajout index sur ce_observation
31
-- Ajout index sur ce_observation
32
CREATE INDEX ce_observation ON cel_images (ce_observation);
32
CREATE INDEX ce_observation ON cel_images (ce_observation);
33
 
33
 
34
-- Mise à jour du champ «transmission» de la table «cel_images» à partir des données de «cel_obs»
34
-- Mise à jour du champ «transmission» de la table «cel_images» à partir des données de «cel_obs»
35
START TRANSACTION;
35
START TRANSACTION;
36
UPDATE cel_images, cel_obs 
36
UPDATE cel_images AS ci, cel_obs AS co 
37
SET cel_images.transmission = cel_obs.transmission, 
37
SET ci.transmission = co.transmission, 
38
	cel_images.date_transmission = cel_obs.date_transmission 
38
	ci.date_transmission = co.date_transmission 
Line 39... Line 39...
39
WHERE  cel_images.ce_observation = cel_obs.id_observation 
39
WHERE  ci.ce_observation = co.id_observation 
40
AND (cel_images.ce_observation IS NOT NULL OR cel_images.ce_observation != 0);
40
AND (ci.ce_observation IS NOT NULL OR ci.ce_observation != 0);
Line 41... Line 41...
41
COMMIT;
41
COMMIT;
-
 
42
 
-
 
43
-- Suppression de la table cel_obs_image inutile
-
 
44
RENAME TABLE cel_obs_images TO cel_obs_images_obsolete;
-
 
45
 
-
 
46
-- -----------------------------------------------------
-
 
47
 
-
 
48
-- Champs ce_utilisateur de cel_obs peut être NULL
-
 
49
ALTER TABLE cel_obs CHANGE ce_utilisateur ce_utilisateur VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL;
-
 
50
 
-
 
51
-- Suppression index id_obs
-
 
52
ALTER TABLE cel_obs DROP INDEX id_obs;
-
 
53
 
-
 
54
-- Correction du champ ce_utilisateur pour la table cel_images
-
 
55
UPDATE cel_obs SET ce_utilisateur = NULL WHERE ce_utilisateur LIKE '%@%' OR ce_utilisateur = '';
-
 
56
 
-
 
57
-- Correction index id_obs
-
 
58
CREATE UNIQUE INDEX id_obs ON cel_obs (ordre, ce_utilisateur, courriel_utilisateur);
-
 
59
 
-
 
60
-- Correction index date_creation
-
 
61
ALTER TABLE cel_obs DROP INDEX date_creation;
-
 
62
CREATE INDEX utilisateur_date_creation ON cel_obs (ce_utilisateur, date_creation, id_observation);
-
 
63
 
-
 
64
-- -----------------------------------------------------
-
 
65
 
-
 
66
-- Correction données en erreurs (bloque la génération des index)
-
 
67
START TRANSACTION;
-
 
68
SET @ordre = 1;
-
 
69
UPDATE cel_images SET ordre = @ordre := @ordre+1 
-
 
70
WHERE ce_utilisateur = 20207 AND courriel_utilisateur = 'jardin-de-claire@orange.fr';
-
 
71
COMMIT;
-
 
72
 
-
 
73
START TRANSACTION;
-
 
74
SET @ordre = 1;
-
 
75
UPDATE cel_images SET ordre = @ordre := @ordre+1 
-
 
76
WHERE ce_utilisateur = 16501 AND courriel_utilisateur = 'alexis.joly@inria.fr';
-
 
77
COMMIT;
-
 
78
 
-
 
79
START TRANSACTION;
-
 
80
SET @ordre = 1;
-
 
81
UPDATE cel_images SET ordre = @ordre := @ordre+1 
-
 
82
WHERE ce_utilisateur = 10261 AND courriel_utilisateur = 'kti-moreau@orange.fr';
-
 
83
COMMIT;
-
 
84
 
-
 
85
START TRANSACTION;
-
 
86
SET @ordre = 1;
-
 
87
UPDATE cel_images SET ordre = @ordre := @ordre+1 
-
 
88
WHERE ce_utilisateur = 18989 AND courriel_utilisateur = 'laetitia.goeau@free.fr';
-
 
89
COMMIT;
-
 
90
 
-
 
91
START TRANSACTION;
-
 
92
SET @ordre = 1;
-
 
93
UPDATE cel_images SET ordre = @ordre := @ordre+1 
-
 
94
WHERE ce_utilisateur = 20667 AND courriel_utilisateur = 'catalina20@hotmail.fr';
-
 
95
COMMIT;
-
 
96
 
-
 
97
START TRANSACTION;
-
 
98
SET @ordre = 1;
-
 
99
UPDATE cel_images SET ordre = @ordre := @ordre+1 
-
 
100
WHERE ce_utilisateur = 11785 AND courriel_utilisateur = 'pierre.bonnet@cirad.fr';
-
 
101
COMMIT;
-
 
102
 
-
 
103
-- Champ ce_utilisateur de cel_images peut être NULL
-
 
104
ALTER TABLE cel_images CHANGE ce_utilisateur ce_utilisateur VARCHAR(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL;
-
 
105
 
-
 
106
-- Correction index id_image
-
 
107
ALTER TABLE cel_images DROP INDEX id_image;
-
 
108
 
-
 
109
-- Correction du champ ce_utilisateur pour la table cel_images
-
 
110
START TRANSACTION;
-
 
111
UPDATE cel_images SET ce_utilisateur = NULL 
-
 
112
WHERE ce_utilisateur LIKE '%@%' OR ce_utilisateur = '';
-
 
113
COMMIT;
-
 
114
 
-
 
115
-- Correction index id_image
-
 
116
CREATE UNIQUE INDEX id_img ON cel_images (ordre, ce_utilisateur, courriel_utilisateur);
-
 
117
 
-
 
118
-- Correction index ce_utilisateur_2
-
 
119
ALTER TABLE cel_images DROP INDEX ce_utilisateur_2;
-
 
120
CREATE INDEX utilisateur_date_creation ON cel_images (ce_utilisateur, date_creation, id_image);
-
 
121
 
-
 
122
-- Correction du champ date_modification dans la table cel_images
-
 
123
START TRANSACTION;
-
 
124
UPDATE cel_images SET 
-
 
125
	date_modification = GREATEST(
-
 
126
		IFNULL(date_creation, '0000-00-00 00:00:00'), 
-
 
127
		IFNULL(date_transmission, '0000-00-00 00:00:00'), 
-
 
128
		IFNULL(date_modification, '0000-00-00 00:00:00'), 
-
 
129
		IFNULL(date_liaison, '0000-00-00 00:00:00')
-
 
130
	);
-
 
131
COMMIT;
-
 
132
 
-
 
133
-- Correction du champ date_modification dans la table cel_obs
-
 
134
START TRANSACTION;
-
 
135
UPDATE cel_obs AS co, cel_images AS ci 
-
 
136
SET co.date_modification = GREATEST(
-
 
137
		IFNULL(co.date_creation, '0000-00-00 00:00:00'), 
-
 
138
		IFNULL(co.date_transmission, '0000-00-00 00:00:00'), 
-
 
139
		IFNULL(co.date_modification, '0000-00-00 00:00:00'),
42
 
140
		IFNULL(ci.date_liaison, '0000-00-00 00:00:00')
43
-- Suppression de la table cel_obs_image inutile
141
	)
44
RENAME TABLE cel_obs_images TO cel_obs_images_obsolete;
142
WHERE co.id_observation = ci.ce_observation ;