Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在MYSQL中基于带参数视图创建存储过程_Mysql_Sql - Fatal编程技术网

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

在MYSQL中基于带参数视图创建存储过程,mysql,sql,Mysql,Sql,对于我试图创建的存储过程,我在mysqlworkbench中遇到语法错误1064。 存储过程基于我创建的视图 这是我基于dataset()的视图: 这是基于视图的存储过程,具有一个参数: CREATE PROCEDURE CallofDuty_Sales @Name varchar(25) AS SELECT * FROM CodSales WHERE Name = @Name GO; Exec CallofDuty_Sales @Name = 'Call of Duty: Black Op

对于我试图创建的存储过程,我在mysqlworkbench中遇到语法错误1064。 存储过程基于我创建的视图

这是我基于dataset()的视图:

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

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

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

我根据中所示的示例编写了存储过程。您的代码是针对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');

请注意,针对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');