Advertisement
Guest User

Untitled

a guest
May 17th, 2018
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. -- (Suppression de la contrainte, du Trigger et de l'index)
  3. ALTER TABLE bom_row_product_model DROP CONSTRAINT fk_brpm__pa__product_material_article_id;
  4. DROP TRIGGER trg_for_flow_apo_on_bom_row_product_model ON bom_row_product_model;
  5. DROP INDEX idx_brpm__product_material_article_id;
  6.  
  7. UPDATE bom_row_product_model SET free_color = infoMat.freeColor
  8. FROM (
  9.     SELECT ma.id, ma.display_name as freeColor
  10.     FROM material_article_old_3445 ma
  11.     LEFT JOIN product_article pa ON pa.tmp_material_article_id = ma.id
  12.     WHERE pa.id IS NULL
  13. ) infoMat
  14. WHERE bom_row_product_model.product_material_article_id IS NULL
  15. AND bom_row_product_model.material_article_id_old_3445 = infoMat.id;
  16.  
  17. -- (La requête sur bom_row_product_model est passée, je remets le trigger, la contrainte et l'index)
  18. ALTER TABLE bom_row_product_model
  19.     ADD CONSTRAINT fk_brpm__pa__product_material_article_id FOREIGN KEY (product_material_article_id) REFERENCES product_article(id);
  20.    
  21. CREATE INDEX idx_brpm__product_material_article_id ON bom_row_product_model(product_material_article_id);
  22.  
  23. CREATE TRIGGER trg_for_flow_apo_on_bom_row_product_model
  24.   AFTER UPDATE OF product_material_article_id
  25.   ON bom_row_product_model
  26.   FOR EACH ROW
  27.   EXECUTE PROCEDURE trigger_for_flow_apo_bom_update();
  28.  
  29.  
  30. -- 2. Update Tables linked to a ElementConception
  31.  
  32. -- BOM (bom_row)
  33.  
  34. -- (Suppression des Triggers pour les perfs)
  35. DROP TRIGGER trg_for_flow_apo_on_bom_row ON bom_row;
  36. DROP TRIGGER trg_for_flow_apo_on_bom_row_delete ON bom_row;
  37.  
  38. UPDATE bom_row bom SET free_element_conception = infoBom.freeElementConception, element_conception_id = null, element_conception_id_old = element_conception_id
  39. FROM (
  40.     SELECT mc.id as ecId, mc.display_name as freeElementConception
  41.     FROM material_conception_old_3445 mc
  42.     LEFT JOIN product_conception pc ON pc.tmp_material_conception_id = mc.id
  43.     WHERE pc.id IS NULL
  44. ) infoBom
  45. WHERE bom.element_conception_id_old IS NULL AND infoBom.ecId = bom.element_conception_id;
  46.  
  47. UPDATE bom_row bom SET free_element_conception = infoBom.freeElementConception, element_conception_id = null, element_conception_id_old = element_conception_id
  48. FROM (
  49.     SELECT mm.id as ecId, mm.display_name as freeElementConception
  50.     FROM material_model_old_3445 mm
  51.     LEFT JOIN product_model pm ON pm.tmp_material_model_id = mm.id
  52.     WHERE pm.id IS NULL
  53. ) infoBom
  54. WHERE bom.element_conception_id_old IS NULL AND infoBom.ecId = bom.element_conception_id;
  55.  
  56. UPDATE bom_row bom SET free_element_conception = infoBom.freeElementConception, element_conception_id = null, element_conception_id_old = element_conception_id
  57. FROM (
  58.     SELECT ma.id as ecId, ma.display_name as freeElementConception
  59.     FROM material_article_old_3445 ma
  60.     LEFT JOIN product_article pa ON pa.tmp_material_article_id = ma.id
  61.     WHERE pa.id IS NULL
  62. ) infoBom
  63. WHERE bom.element_conception_id_old IS NULL AND infoBom.ecId = bom.element_conception_id;
  64.  
  65. -- (Les requêtes sur bom_row sont passées, je remets les triggers)
  66. CREATE TRIGGER trg_for_flow_apo_on_bom_row
  67.   AFTER UPDATE OF quantity, unit_id, element_conception_id
  68.   ON bom_row
  69.   FOR EACH ROW
  70.   EXECUTE PROCEDURE trigger_for_flow_apo_bom_update();
  71. CREATE TRIGGER trg_for_flow_apo_on_bom_row_delete
  72.   BEFORE UPDATE OF deleted_flag
  73.   ON bom_row
  74.   FOR EACH ROW
  75.   EXECUTE PROCEDURE trigger_for_flow_apo_bom_update();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement