我可以创建一个过程或函数来删除mysql中的参数表吗?

我可以创建一个过程或函数来删除mysql中的参数表吗?,mysql,function,procedure,Mysql,Function,Procedure,我使用Navicat创建了一个在mysql中删除参数表的过程 错误:无效的存储过程语法正如p.Salmon所评论的,您不能在sql语句中直接传递替换过程参数(即变量)。您需要动态sql:将查询构建为字符串,然后执行它 delimiter // DROP PROCEDURE IF EXISTS drop_table// create procedure drop_table(in table_name varchar) #创建带参数的存储过程 begin drop table if

我使用Navicat创建了一个在mysql中删除参数表的过程


错误:无效的存储过程语法

正如p.Salmon所评论的,您不能在sql语句中直接传递替换过程参数(即变量)。您需要动态sql:将查询构建为字符串,然后执行它

delimiter //
DROP PROCEDURE IF EXISTS drop_table//
create procedure drop_table(in table_name varchar) #创建带参数的存储过程
begin
        drop table if EXISTS table_name;
end//
delimiter ;

call drop_table('a')


注意:
varchar
数据类型需要一个长度。

正如p.Salmon所评论的,您不能在sql语句中直接传递替换过程参数(即变量)。您需要动态sql:将查询构建为字符串,然后执行它

delimiter //
DROP PROCEDURE IF EXISTS drop_table//
create procedure drop_table(in table_name varchar) #创建带参数的存储过程
begin
        drop table if EXISTS table_name;
end//
delimiter ;

call drop_table('a')


注意:
varchar
数据类型需要一个长度。

MYSQL不进行变量替换。您需要使用动态sql,请参见OK,thks。这对我很有用。MYSQL不进行变量替换。您需要使用动态sql,请参见OK,thks。它对我很有用。