使用MYSQL创建存储过程时遇到问题

时间:2017-06-30 19:58:12

标签: mysql stored-procedures

我是MQSQL的新手,我一直在使用MSSQL,所以我的语法很有挑战性。我收到此错误

  

#1064 - 您的SQL语法出错; ...在'declare @side LONGTEXT附近使用正确的语法;    声明@post BIGINT(20)DEFAULT 0;    @side ='7082';    '在第3行**

但是窗口在select语句旁边也有一个大的红色X. 我已经仔细检查了变量的数据类型,Meta_Value是LONGTEXT,post_id是BIGINT(20)

DROP PROCEDURE IF EXISTS DailyDishData()

DELIMITER //

CREATE PROCEDURE DailyDishData()

declare @side LONGTEXT;
declare @post BIGINT(20) DEFAULT 0;

@side = '7082';

BEGIN
select @post = post_id from `wp_dfh0payzs9_postmeta` where meta_key = 'ftrecipe_id' and meta_value = @side;
END 

DELIMITER ;

1 个答案:

答案 0 :(得分:0)

您忘记/错放了程序周围的BEGINEND个关键字

DELIMITER //
DROP PROCEDURE IF EXISTS DailyDishData //

CREATE PROCEDURE DailyDishData()
BEGIN
    declare @side LONGTEXT;
    declare @post BIGINT(20) DEFAULT 0;

    set @side = '7082';

    select @post = post_id
    from `wp_dfh0payzs9_postmeta` 
    where meta_key = 'ftrecipe_id' and meta_value = @side;
END 
//

DELIMITER ;

忽略硬编码数字在程序中没有多大意义并且您似乎不使用@post变量

的事实