【问题标题】:Having trouble creating a stored procedure using MYSQL使用 MYSQL 创建存储过程时遇到问题
【发布时间】:2017-06-30 19:58:12
【问题描述】:

我是 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 ;

【问题讨论】:

    标签: mysql stored-procedures


    【解决方案1】:

    您忘记/放错了过程周围的 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 变量

    【讨论】:

    • 您能解释一下问题是什么以及您是如何解决的吗?
    猜你喜欢
    • 2011-02-18
    • 1970-01-01
    • 1970-01-01
    • 2016-10-06
    • 2020-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多