我创建了一个简单的存储过程,它将删除一个视图。我正在学习mysql中的存储过程,请耐心听我说,
DELIMITER $$
CREATE PROCEDURE dropView (
IN viewName varchar(4000)
)
BEGIN
SET @sql:=CONCAT('DROP VIEW ',@viewName);
PREPARE dynamic_statement FROM @SQL;
EXECUTE dynamic_statement;
DEALLOCATE PREPARE dynamic_statement;
END$$
DELIMITER ;
我这样称呼上面的人,
SET @theView = '`Report`;';
CALL dropView(@theView);
我收到了错误信息,
错误代码:1064。sql语法有错误;检查与mysql服务器版本相对应的手册,以获得在第1行使用接近“null”的正确语法
我正在使用mysql 8.0.17
根据这一点,我可以在准备好的mysql中使用“create/drop view”。
1条答案
按热度按时间qgelzfjb1#
@viewNameis
a 9.4。用户定义变量和viewName
一个存储过程参数(13.1.17 create procedure和create function语句)是不同的变量。