mysql - 找出此存储过程中的语法错误

标签 mysql stored-procedures

DELIMITER //
CREATE PROCEDURE compare (x INT,  y INT) RETURNS INT
BEGIN
    DECLARE test INT;

    IF x > y 
        THEN SET test = 1;
    ELSEIF y > x
        THEN SET test = -1;
    ELSE SET test = 0;

    END IF;

    RETURN test;
END
//

任何人都可以显示这里的错误是什么吗? PhpMyAdmin 说

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INT BEGIN DECLARE test INT; IF x > y THEN SET test = 1; ELSEIF y >' at line 1

最佳答案

您必须改为CREATE FUNCTION,因为过程不能返回任何东西,只有函数可以。

关于mysql - 找出此存储过程中的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4721211/

相关文章:

mysql - 从 SQL 存储过程中的唯一值查找最大数量

java.sql.SQLException : No suitable driver found for jdbc:mysql://localhost:3306/database

mysql - 无法添加实体数据模型 (EF6)

mysql - 对另一个表中的所有 ID 运行 MySql 查询

sql - 使用循环从两个表中选择值

mysql - 当调用 Zend_Db::update() 和 insert() 时,将值设置为 null

python - 在 Django 中过滤超过 0000-00-00 日期的对象

tsql - 存储过程似乎没有解释就挂了

MySQL Proc 调用 - 设置奇怪的行为

mysql - 相同的 SQL 代码在不同的 MySQL 客户端上返回不同的结果集