bonjour,
j'ai une procédure d'importation
avec cette procédure si jamais une ligne existe déjà ça plante, donc je voulais à partir de cette dernière créer une autre procédure pour importer mais remplacer les valeurs moyenne, minimum et maximum .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 DELIMITER | DROP PROCEDURE IF EXISTS import_donnees| CREATE PROCEDURE import_donnees() BEGIN SET @myInsert:= CONCAT(' INSERT INTO relever_mesure(moyenne, minimum, maximum, id_calendrier_calendrier, id_station_Stations, id_capteur_capteur) SELECT i.moyenne, i.minimum, i.maximum, d.id_calendrier, i.id_station, c.id_capteur FROM import i INNER JOIN calendrier d ON i.date_heure = d.date_heure_locale INNER JOIN capteur c ON i.capteur=c.libelle ; '); prepare stmnt FROM @myInsert; EXECUTE stmnt; DEALLOCATE PREPARE stmnt; END ;
en me basant sur une procédure similaire je pensais que ce qui suit marcherais mais ce n'est pas le cas
si quelqu'un peut m'aider ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 DELIMITER | DROP PROCEDURE IF EXISTS import_update| CREATE PROCEDURE import_update() BEGIN SET @myInsert:= CONCAT(' INSERT INTO relever_mesure(moyenne, minimum, maximum, id_calendrier_calendrier, id_station_Stations, id_capteur_capteur) SELECT i.moyenne, i.minimum, i.maximum, d.id_calendrier, i.id_station, c.id_capteur FROM import i INNER JOIN calendrier d ON i.date_heure = d.date_heure_locale INNER JOIN capteur c ON i.capteur=c.libelle ; ON DUPLICATE KEY UPDATE moyenne=VALUES(moyenne), minimum=VALUES(minimum),maximum=VALUES(maximum) '); prepare stmnt FROM @myInsert; EXECUTE stmnt; DEALLOCATE PREPARE stmnt; END ;
merci
Partager