Changes between Initial Version and Version 1 of Ticket #226, comment 1


Ignore:
Timestamp:
Jan 24, 2017 1:55:03 PM (8 years ago)
Author:
marion
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #226, comment 1

    initial v1  
    1 Replying to [ticket:226 marion]: 
    2 > Dans les bonnées BRESLE j'ai : 
    3 >  
    4 > -- une marque 3058 de type Carlin  
    5 > -- une autre 3058 de type Spaghetti. 
    6 >  
    7 > A ce jour on ne peut pas rentrer ces 2 marques dans la table t_marque_mqe car la clé primaire correspond à (mqe_reference, mqe_org_code). 
    8 > Cette clé primaire est la clé étrangère de la table tj_actionmarquage_act. 
    9 > Si on veut changer cette clé pour faire une contrainte triple du type (mqe_reference,mqe_nmq_code,mqe_org_code) il faut ajouter dans tj_actiomarquage_act la colonne act_mnq_code puis supprimer les contraintes de clé étrangère (tj_actionmarquage_act) et clé primaire (t_marque_mqe) puis les recréer avec les bons champs. 
    10  
    11 Voici le code SQL pour faire cela (à lancer sur tous les schémas dont chaque utilisateur dispose hors schéma public, ref et topology) : 
    12  
    13 select ref.updatesql('{"bgm","charente","fd80","logrami","migado","migradour","nat","ngm","pmp","saumonrhin","seinormigr","smatah"}', 
    14 ' 
    15 --Ajout de la colonne act_nmq_code dans tj_actionmarquage 
    16 ALTER TABLE tj_actionmarquage_act ADD COLUMN act_nmq_code character varying(4); 
    17  
    18 --Mise à jour de ce champ par rapport au champ mqe_nmq_code 
    19 UPDATE tj_actionmarquage_act SET act_nmq_code=m.mqe_nmq_code FROM t_marque_mqe m where act_mqe_reference=m.mqe_reference; 
    20  
    21 --On ajoute une contrainte not null sur le champ act_nmq_code 
    22 ALTER TABLE tj_actionmarquage_act ALTER COLUMN act_nmq_code SET NOT NULL; 
    23  
    24 --On supprime les contrainte de clé étrangère / clé primaire 
    25 ALTER TABLE tj_actionmarquage_act DROP CONSTRAINT c_fk_act_mqe_reference; 
    26 ALTER TABLE t_marque_mqe DROP CONSTRAINT c_pk_mqe; 
    27  
    28 --On les refait en ajoutant ce champ à la clé 
    29 ALTER TABLE t_marque_mqe ADD CONSTRAINT c_pk_mqe PRIMARY KEY (mqe_reference, mqe_nmq_code, mqe_org_code); 
    30 ALTER TABLE tj_actionmarquage_act ADD CONSTRAINT c_fk_act_mqe_reference FOREIGN KEY (act_mqe_reference, act_nmq_code, act_org_code) 
    31       REFERENCES t_marque_mqe (mqe_reference, mqe_nmq_code, mqe_org_code) MATCH SIMPLE 
    32       ON UPDATE CASCADE ON DELETE NO ACTION; 
    33 '); 
    34