簡體   English   中英

在存儲過程中聲明變量

[英]Declare variable in stored procedure

我在存儲過程中聲明變量有問題。 我使用MySQL。 我的示例代碼:

CREATE PROCEDURE `name`()
BEGIN
    DECLARE varname INT;

    SELECT  * FROM `table` INTO var;
END

MySQL返回錯誤:

錯誤1064-您的SQL語法有錯誤; 檢查與您的MariaDB服務器版本相對應的手冊以獲取在第3行的''附近使用的正確語法

var是保留關鍵字

CREATE PROCEDURE test ()
BEGIN
    DECLARE  var2 INT;
    // Do something
END;

更新

我看到了錯誤的MAriaDB,在MariaDB中聲明變量的正確方法是

SET @var = 0;

您應該使用正確的關鍵字標記問題

如果過程中有多個語句,則必須更改定界符。 否則,MySQL認為在第一條語句之后完成了過程聲明。

這是一個有效的示例。 順便說一句, var 不是其他人試圖告訴您的保留關鍵字。

DELIMITER $$
CREATE PROCEDURE test ()
BEGIN
    DECLARE var INT;
    SELECT 1 INTO var;
    SELECT var;
END $$
DELIMITER ;

CALL test();
+------+
| var  |
+------+
|    1 |
+------+
1 row in set (0.00 sec)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM