Changes between Initial Version and Version 2 of Ticket #226


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

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #226 – Description

    initial v2  
    66A 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). 
    77Cette clé primaire est la clé étrangère de la table tj_actionmarquage_act. 
    8 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 changer la contrainte de clé étrangère de cette table et enfin la contrainte de clé primaire de t_marque_mqe. 
     8Si 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. 
    99 
    10 Est-ce pertinent de faire cette modif ? Ou est-ce qu'on considère que pas possible d'avoir le même code pour des types de marques différents ? 
     10Voici le code SQL pour faire cela (à lancer sur tous les schémas dont chaque utilisateur dispose hors schéma public, ref et topology) : 
     11 
     12select ref.updatesql('{"bgm","charente","fd80","logrami","migado","migradour","nat","ngm","pmp","saumonrhin","seinormigr","smatah"}', 
     13' 
     14--Ajout de la colonne act_nmq_code dans tj_actionmarquage 
     15ALTER TABLE tj_actionmarquage_act ADD COLUMN act_nmq_code character varying(4); 
     16 
     17--Mise à jour de ce champ par rapport au champ mqe_nmq_code 
     18UPDATE tj_actionmarquage_act SET act_nmq_code=m.mqe_nmq_code FROM t_marque_mqe m where act_mqe_reference=m.mqe_reference; 
     19 
     20--On ajoute une contrainte not null sur le champ act_nmq_code 
     21ALTER TABLE tj_actionmarquage_act ALTER COLUMN act_nmq_code SET NOT NULL; 
     22 
     23--On supprime les contrainte de clé étrangère / clé primaire 
     24ALTER TABLE tj_actionmarquage_act DROP CONSTRAINT c_fk_act_mqe_reference; 
     25ALTER TABLE t_marque_mqe DROP CONSTRAINT c_pk_mqe; 
     26 
     27--On les refait en ajoutant ce champ à la clé 
     28ALTER TABLE t_marque_mqe ADD CONSTRAINT c_pk_mqe PRIMARY KEY (mqe_reference, mqe_nmq_code, mqe_org_code); 
     29ALTER TABLE tj_actionmarquage_act ADD CONSTRAINT c_fk_act_mqe_reference FOREIGN KEY (act_mqe_reference, act_nmq_code, act_org_code) REFERENCES t_marque_mqe (mqe_reference, mqe_nmq_code, mqe_org_code) MATCH SIMPLE 
     30      ON UPDATE CASCADE ON DELETE NO ACTION; 
     31');