Bonsoir,
J'ai deja un procedure sql qui marche correctement, qui sert a prend des variables d'une page PHP, et les ajoutent dans une table sql (J'utilise Mysql Workbench 6.1).
Mais il, parfois, faire insert pour la meme "row" meme s'il existe. Alors j'ai re-ecrire le meme procedure avec la condition if not exists:
Code sql : 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 -- -------------------------------------------------------------------------------- -- Routine DDL -- Note: comments before and after the routine body will not be stored by the server -- -------------------------------------------------------------------------------- DELIMITER $$ CREATE DEFINER=`root`@`localhost` PROCEDURE `note_avg`(OUT numberOfStudents INT ,OUT avg_result decimal, IN courseId INT, IN semester INT, IN classOf VARCHAR(20)) IF NOT exists( select * from average where course_id=courseId AND semester=semester AND year=classOf ) BEGIN SELECT COUNT(*) INTO numberOfStudents FROM notes WHERE course_id=courseId AND semester=semester AND year=classOf; SELECT avg(final_note) INTO avg_result FROM notes WHERE course_id=courseId AND semester=semester AND year=classOf; INSERT INTO average(course_id, average, semester, classOf, numberOfStudents) VALUES (courseId, avg_result, semester, classOf, numberOfStudents); END
L'erreur:
J'ai obtenu une erreur sur BEGIN.ERROR 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'BEGIN
Est-ce quelqu'un peut savoir ou la probleme ? Et comment je peut utiliser un curseur avec IF NOT EXISTS.
Merci.
Partager