Bonjour.
Voila, j'essaye de créer la fonction suivante sur ma base de donnée:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
DROP FUNCTION IF EXISTS get_or_create_term_group;
CREATE FUNCTION `get_or_create_term_group`(group_type varchar(64), group_name tinytext, properties mediumtext)
    RETURNS int(11)
    NOT DETERMINISTIC
    SQL SECURITY DEFINER
    COMMENT ''
BEGIN
     IF (SELECT count(*) FROM t_terminal_group WHERE f_group_type=group_type AND f_group_name=group_name) = 0 THEN
        REPLACE INTO `t_terminal_group` (f_group_type, f_group_name, f_group_properties) VALUES (group_type, group_name, properties);
     END IF;
     RETURN (SELECT f_group_id FROM t_terminal_group WHERE f_group_type=group_type AND f_group_name=group_name);
END;
A chaque fois que j'essaye d'exécuter cette fonction sous phpMyAdmin, j'obtiens le message d'erreur suivant:
#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 'REPLACE INTO `t_terminal_group` (f_group_type, f_group_name, f_group_properties)' at line 8
Pourtant, la syntaxe du replace est bonne, je l'ai testée, et même si je remplace cette requête par un insert ou un select, j'ai le même problème. Plus étrange, ce problème ne survient qu'avec phpmyadmin, avec d'autres outils de requêtes MySQL, tout se passe sans problèmes.

Une idée? Merci d'avance!