db-update-2020-06-10.sql
3.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
use database;
-- On execute TOUT ou RIEN, c'est plus simple
START TRANSACTION;
-- Table type_suivis
-- 6/4/20 : ajout champ “is_regular” dans table type_suivis
ALTER TABLE `type_suivis` ADD `is_regular` BOOLEAN NOT NULL DEFAULT FALSE COMMENT 'suivi de type régulier (avec fréquence et non pas date)' AFTER `nom`;
-- 8/4/20 : ajout champ “is_metro” dans table type_suivis
ALTER TABLE type_suivis ADD is_metro BOOLEAN NOT NULL DEFAULT FALSE COMMENT 'type de suivi lié au module métrologie' AFTER is_regular;
update materiels set groupes_thematique_id=null WHERE groupes_thematique_id = (select id from groupes_thematiques where nom='N/A');
-- 4/5/20 : suppression du champ “N/A” de groupes_thematiques et groupes_metiers (inutile et pose difficultés)
-- et remplacement des liens vers ce champ dans table materiels par NULL
-- et remplacement des liens vers ce champ dans table suivis par NULL
-- et remplacement des liens vers ce champ dans table users par NULL
-- a) update materiels.group = null
update materiels set groupes_thematique_id=NULL WHERE groupes_thematique_id = (select id from groupes_thematiques where nom='N/A');
update materiels set groupes_metier_id=NULL WHERE groupes_metier_id = (select id from groupes_metiers where nom='N/A');
-- b) update suivis.group = null
update suivis set groupes_thematique_id=NULL WHERE groupes_thematique_id = (select id from groupes_thematiques where nom='N/A');
update suivis set groupes_metier_id=NULL WHERE groupes_metier_id = (select id from groupes_metiers where nom='N/A');
-- c) update users.group = null
update users set groupe_thematique_id=NULL WHERE groupe_thematique_id = (select id from groupes_thematiques where nom='N/A');
update users set groupes_metier_id=NULL WHERE groupes_metier_id = (select id from groupes_metiers where nom='N/A');
-- d) delete groupes 'N/A'
delete FROM groupes_metiers WHERE nom = 'N/A';
-- Suppression de la CONSTRAINT fk_users_groupe_thematique_id (et de l'index associé) (on va la recréer plus loin)
--ALTER TABLE users DROP CONSTRAINT fk_users_groupe_thematique_id;
ALTER TABLE users DROP FOREIGN KEY fk_users_groupe_thematique_id;
ALTER TABLE users DROP INDEX fk_users_groupe_thematique_id;
delete FROM groupes_thematiques WHERE nom = 'N/A';
-- 5/5/20 : suppression du champ “N/A” des tables sites et type_documents (inutile et pose difficultés)
-- et remplacement des liens vers ces champ par NULL dans tables materiels, emprunts et documents
-- //select designation,site_id from materiels WHERE site_id = (select id from sites where nom='N/A');
update materiels set site_id=NULL WHERE site_id = (select id from sites where nom='N/A');
update emprunts set site_id=NULL WHERE site_id = (select id from sites where nom='N/A');
update documents set type_document_id=NULL WHERE type_document_id = (select id from type_documents where nom='N/A');
delete FROM type_documents WHERE nom = 'N/A';
delete FROM sites WHERE nom = 'N/A';
-- 5/6/20 : renommé champ fk groupe_thematique_id de la table users en groupes_thematique_id
-- pour s’harmoniser avec les noms dans les autres tables
ALTER TABLE users CHANGE groupe_thematique_id groupes_thematique_id INT(11) NULL DEFAULT NULL;
--UPDATE users SET groupes_thematique_id=null WHERE groupes_thematique_id = 1;
-- On recrée ici la CONSTRAINT fk_users_groupe_thematique_id
ALTER TABLE users ADD CONSTRAINT fk_users_groupe_thematique_id FOREIGN KEY (groupes_thematique_id) REFERENCES groupes_thematiques (id) ON DELETE NO ACTION ON UPDATE NO ACTION;
COMMIT;