je tente d'exécuter une requête variable dans une fonction MySQL personnalisé, voici le script:AFFECTÉ Erreur de syntaxe d'erreur de requête préparée
DELIMITER $
CREATE FUNCTION is_present(in_id BIGINT, in_table_name VARCHAR(255)) RETURNS BIT
BEGIN
DECLARE stm VARCHAR(255);
DECLARE result BIT DEFAULT 0;
SET stm := CONCAT('SELECT IF(COUNT(*), 1, 0) INTO result FROM', in_table_name, 'WHERE id=? LIMIT 1');
PREPARE query FROM stm;
EXECUTE query USING in_id;
DEALLOCATE PREPARE query;
RETURN result;
END $
DELIMITER ;
Mysql me met en garde contre la syntaxe:
Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version du serveur MySQL pour la bonne syntaxe à utiliser près de 'stm; Requête EXECUTE UTILISER in_id; DEALLOCATE PREPARE requête; Résultat de retour; 'À la ligne 9