【问题标题】:MySQL Stored Procedure Syntax Issues (Eclipse SQL Explorer) [closed]MySQL存储过程语法问题(Eclipse SQL Explorer)[关闭]
【发布时间】:2012-08-28 19:02:48
【问题描述】:

晚安,

我在为 MySql 编写存储过程时遇到了麻烦,我已经阅读了一些教程,因为我更习惯于为 Sybase 编写存储过程。

这个过程在第 8 行附近有些地方不对劲。我已经尝试更改大量关于它的内容并简化它,但我仍然无法让它工作。

我正在通过 Eclipse SQL Explorer 插件运行此代码。

开始怀疑它是否在服务器端进行了一些设置。

谁能看出这不起作用的原因?

     DROP PROCEDURE IF EXISTS myDB.myProc;
     GO
     CREATE PROCEDURE myProc(
        IN p1 INT,
        IN p2 INT,
        IN p3 INT,
        IN p4 INT,
        IN p5 TEXT)
     BEGIN
        DECLARE dateToday DATETIME;
        SELECT dateToday = GETDATE();

        INSERT INTO myTable(id_p1, 
                            id_p2, 
                            id_p3, 
                            id_p4,
                            id_p5,
                            id_p6)
                    VALUES(p1,
                            p2,
                            p3,
                            p4,
                            p5,
                            dateToday);    
     END

任何帮助将不胜感激:)

干杯,

戴夫·麦克布

【问题讨论】:

    标签: mysql eclipse stored-procedures mysql-error-1064


    【解决方案1】:

    我不确定 MySQL sintax,但变量不应该是这样的吗? :

    DECLARE @dateToday DATETIME;
    Set @dateToday = NOW();
    

    另外,我认为Getdate() 是用于MSSQL,你应该在MySQL 中使用NOW()

    【讨论】:

    • 使用@标志会在'@dateToday DATETIME'附近抛出语法错误,而不是通常在''附近,我也习惯@方法,更容易阅读,MySQL没有不过似乎喜欢它... :( 为 NOW() 小费干杯!GETDATE() 只是经验中的黑暗刺,哈哈 :)
    猜你喜欢
    • 2016-10-28
    • 2020-03-08
    • 1970-01-01
    • 1970-01-01
    • 2011-03-16
    • 1970-01-01
    • 2012-01-09
    • 2015-12-28
    • 2012-10-30
    相关资源
    最近更新 更多