在mysql中创建基于带参数视图的存储过程

bvjxkvbb  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(342)

在mysqlworkbench中,对于我试图创建的存储过程,我得到了一个语法错误1064。存储过程基于我创建的视图。
这是我基于数据集的观点(https://www.kaggle.com/gregorut/videogamesales) :

Create View CodSales AS 
SELECT 
    Name, Platform, Year, Global_Sales
FROM
   vgsales
WHERE
   Name LIKE 'Call of Duty:%'
ORDER BY Global_Sales DESC;

这是基于视图的存储过程,只有一个参数:

CREATE PROCEDURE CallofDuty_Sales @Name varchar(25) 
AS
SELECT * FROM CodSales WHERE Name = @Name
GO;

Exec CallofDuty_Sales @Name = 'Call of Duty: Black Ops'

我根据中所示的示例执行了存储过程https://www.w3schools.com/sql/sql_stored_procedures.asp

ojsjcaue

ojsjcaue1#

您的代码是针对sql server的,它在mysql中不起作用
一定是的

DELIMITER //
CREATE PROCEDURE `CallofDuty_Sales` (IN _Name varchar(25))
BEGIN
SELECT 
    Name, Platform, Year, Global_Sales
FROM
   vgsales
WHERE
   Name LIKE CONCAT(_Name,'%')
ORDER BY Global_Sales DESC;
END//
DELIMITER ;

CALL CallofDuty_Sales ('Call of Duty: Black Ops');

相关问题