Mysql 用户无法执行挖掘表的过程

Mysql 用户无法执行挖掘表的过程,mysql,Mysql,我创建了一个过程来截断参数中提供的表 CREATE DEFINER=`imerrywe`@`%` PROCEDURE `truncate_table`(`table` VARCHAR(255)) BEGIN SET @s = CONCAT('TRUNCATE ', @table); PREPARE stmt3 FROM @s; EXECUTE stmt3; END 当我以“imerrywe”登录时调用它时,该过

我创建了一个过程来截断参数中提供的表

    CREATE DEFINER=`imerrywe`@`%` PROCEDURE `truncate_table`(`table` 
    VARCHAR(255))
    BEGIN

        SET @s = CONCAT('TRUNCATE ', @table);
        PREPARE stmt3 FROM @s;
        EXECUTE stmt3;
    END
当我以“imerrywe”登录时调用它时,该过程工作正常

mysql>调用truncate_table('test_table'); 查询正常,0行受影响(0.10秒)

我创建了一个测试用户并授予该用户对该过程的执行权限,但当我以该用户身份登录时尝试调用该过程时,它将不会执行

mysql>调用truncate_table('test_table'); 错误1064(42000):您的SQL语法有错误


是否缺少某些权限?

@表是一个变量,请使用此变量:-

CREATE DEFINER=`imerrywe`@`%` PROCEDURE `truncate_table`(in_table 
VARCHAR(255))
BEGIN

    SET @s = CONCAT('TRUNCATE ', in_table);
    PREPARE stmt3 FROM @s;
    EXECUTE stmt3;
END

请记住,例程参数不同于。试试看:
SET@s=CONCAT('TRUNCATE','table')。谢谢。现在效果很好。