簡體   English   中英

如何解決此存儲過程?

[英]How do I troubleshoot this stored procedure?

我寫了一個存儲過程,但無論我做什么,錯誤都不會 go 消失。

MySQL 錯誤是:#1064 - 您的 SQL 語法有錯誤; 檢查與您的 MariaDB 服務器版本相對應的手冊,以在第 4 行的“DECLARE cr CURSOR For (SELECT id , subtitle , price FROM book )...”附近使用正確的語法

我寫的代碼如下:

``` 分隔符 //

CREATE PROCEDURE show_book()
BEGIN
    DECLARE @id int(11), @subtitle varchar(30), @price int(7)
    DECLARE cr CURSOR For SELECT id,subtitle,price FROM book
                OPEN cr
                    FETCH NEXT FROM cr INTO @id,@subtitle,@price
                    WHILE(@@FETCH_STATUS=0)
                    BEGIN
                        Print(@id + ' '+ @subtitle + ' '+ Cast(@price as varchar(7)))
                        FETCH NEXT FROM cr INTO @id,@subtitle,@price
                    END
                CLOSE cr
    DEALLOCATE cr
END //

分隔符;

需要解決的問題:

  • 在 MySQL 中,局部變量不使用@-前綴。
  • 對每個變量使用單獨的 DECLARE
  • 無需使用 int(11)/int(7),只需使用 int。 他們都是一樣的。
  • 您應該用分號結束每個語句

請參閱文檔

暫無
暫無

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

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