petit probleme de procédure
bonjour,
j'ai une procédure d'importation
Code:
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 ; |
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 .
en me basant sur une procédure similaire je pensais que ce qui suit marcherais mais ce n'est pas le cas
Code:
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 ; |
si quelqu'un peut m'aider ...
merci