在mySql中使用分隔符时出错

时间:2013-11-29 04:28:28

标签: mysql

我正在尝试运行此程序。

USE dbsample
DELIMITER //
CREATE PROCEDURE updateBooks (IN book_id VARCHAR(20), IN units INT)
BEGIN
UPDATE books
SET quantity = quantity – units
WHERE isbn = book_id;
END //
DELIMITER ;

虽然我已经在各个地方检查了一个语法似乎对我来说。但是我收到以下错误

  

错误代码1064,SQL状态42000:您的SQL语法中有错误;检查与MySQL服务器版本对应的手册,以便在'DELIMITER //附近使用正确的语法   第2行的CREATE PROCEDURE updateBooks(IN book_id VARCHAR(20),IN units INT)'   第1行第1列

     

错误代码1064,SQL状态42000:您的SQL语法中有错误;检查与MySQL服务器版本对应的手册,以便在'END //附近使用正确的语法   DELIMITER'在第1行   第8行第1栏

任何帮助都会很棒。我正在使用mySQL版本5.6

1 个答案:

答案 0 :(得分:3)

必须使用分隔符终止USE语句(在您的情况下,它是分号)。

USE dbsample;
            ^

另一个问题是你在

中使用短划线()而不是负号(-
... SET quantity = quantity – units
                            ^

更新:由于UPDATE是您程序中唯一的陈述,因此您不必使用BEGIN ... END阻止并更改DELIMITER

CREATE PROCEDURE updateBooks(IN book_id VARCHAR(20), IN units INT)
UPDATE books
   SET quantity = quantity - units
 WHERE isbn = book_id;

这是 SQLFiddle 演示