繁体   English   中英

此mySql脚本中的语法错误是什么

[英]What is the Syntax Error in this mySql script

我已经写了一个存储函数:

  USE sakila;

DROP FUNCTION IF EXISTS sumOfFilm;

DELIMITER $$

CREATE FUNCTION sumOfFilm(
    mStore_id TINYINT, mMonth VARCHAR(4), mYear VARCHAR(4))
BEGIN
    DECLARE @sumOfFilm INT;
    SELECT COUNT(*) INTO @sumOfFilm FROM rental
    INNER JOIN inventory ON rental.inventory_id=inventory.inventory_id
    INNER JOIN store ON store.store_id=inventory.store_id
    WHERE mStore_id=store.store_id AND
            mMonth=month(rental_date) AND
            mYear=year(rental_date)
    GROUP BY store.store_id;
    RETURN @sumOfFilm;
END$$

DELIMITER ;

当我执行它时,我收到一条错误消息:

错误1064(42000):您的SQL语法有错误; 查看与您的MySQL服务器版本相对应的手册以获取正确的语法,以在'BEGIN DECLARE @sumOfFilm INT附近使用; 在第3行中选择COUNT(*)INTO @sumOfFilm FROM Rental INN'

请帮我 :)

  USE sakila;

DROP FUNCTION IF EXISTS sumOfFilm;

DELIMITER $$

CREATE FUNCTION sumOfFilm(
    mStore_id TINYINT, mMonth VARCHAR(4), mYear VARCHAR(4))
BEGIN
    SELECT @sumOfFilm := COUNT(*) FROM rental
    INNER JOIN inventory ON rental.inventory_id=inventory.inventory_id
    INNER JOIN store ON store.store_id=inventory.store_id
    WHERE mStore_id=store.store_id AND
            mMonth=month(rental_date) AND
            mYear=year(rental_date)
    GROUP BY store.store_id;
    RETURN INT @sumOfFilm;
END$$

DELIMITER ;

也可以尝试

SET @sumOfFilm = (SELECT COUNT(*) FROM rental)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM