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 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
| /**
* Patch PEF DDL du 05/05/2021
* @file : SQL_Pef/Scripts/Patches/DDL/PEF_DDL_2021-05-05.sql
* @Author : Philippe Leménager
*/
-- Base d'exécution du patch
USE pef;
DELIMITER //
BEGIN NOT ATOMIC
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
-- Annulation des données éventuellement modifiées par le patch
ROLLBACK;
-- Suppression de la table éventuellement créée par le patch
DROP TABLE IF EXISTS ta_log_evenement_lev;
-- Annulation éventuelle du changement de colonne ins_date_etat
ALTER TABLE te_inscription_ins
MODIFY ins_date_etat DATE NOT NULL DEFAULT CURRENT_DATE COMMENT 'Date de l''état de l''inscription';
-- Annulation éventuelle de la création de la colonne uti_date_creation
ALTER TABLE th_utilisateur_uti
DROP COLUMN uti_date_creation;
RESIGNAL;
END;
START TRANSACTION;
SELECT 'Vérification de l''application de patch essentiel' AS 'Vérification';
CALL referentiel.pa_patch_existe('referentiel', 'REF_DDL_2021-05-05', @res);
SELECT @res AS Verif_patch_essentiel;
SELECT 'Création table administrative de log d''événement' AS 'Création';
CREATE TABLE IF NOT EXISTS ta_log_evenement_lev
(
lev_id_utilisateur INTEGER NOT NULL COMMENT 'Identifiant de l''utilisateur',
lev_date_heure DATETIME NOT NULL DEFAULT CURRENT TIMESTAMP COMMENT 'Date/heure de l''événement',
lev_id_type_evenement TINYINT NOT NULL COMMENT 'Identifiant du type d''événement',
lev_changement_valeur VARCHAR(100) NOT NULL DEFAULT '' COMMENT 'Détail du changement de valeur de donnée effectué'
)
ENGINE=InnoDB
DEFAULT CHARSET=utf8mb4
COMMENT='Trace d''évenements de modification de données';
-- Index pour la table ta_log_evenement_lev
ALTER TABLE ta_log_evenement_lev
ADD PRIMARY KEY (lev_id_utilisateur, lev_date_heure),
ADD KEY x_lev_id_type_evenement (lev_id_type_evenement),
ADD CONSTRAINT fk_lev_id_utilisateur
FOREIGN KEY (lev_id_utilisateur)
REFERENCES th_utilisateur_uti (uti_id_personne_physique)
ON UPDATE CASCADE
ON DELETE CASCADE,
ADD CONSTRAINT fk_lev_id_type_evenement
FOREIGN KEY (lev_id_type_evenement)
REFERENCES referentiel.tr_type_evenement_tev (tev_id)
ON UPDATE CASCADE
ON DELETE RESTRICT;
SELECT 'Modif colonne ins_date_etat de commentaires sur te_inscription_ins' AS Modif;
ALTER TABLE te_inscription_ins
MODIFY ins_date_etat DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Date de l''état de l''inscription';
SELECT 'Ajout colonne uti_date_creation dans table th_utilisateur_uti' AS Modif;
ALTER TABLE th_utilisateur_uti
ADD COLUMN uti_date_creation DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'Date de création du compte utilisateur';
SELECT 'Enregistrement du patch' AS 'Traitement';
INSERT INTO ts_database_admin_dba (dba_nom, dba_nature, dba_commande)
VALUES ('plemenager', 'Patch DDL', 'PEF_DDL_2021-05-05');
UPDATE ts_database_info_dbi
SET dbi_valeur = 'PEF_DDL_2021-05-05'
WHERE dbi_libelle = 'Dernier SQL diff.';
COMMIT;
END;
// |
Partager