在 mySql 中使用分隔符时出错 [英] Error using Delimiters in mySql

查看:75
本文介绍了在 mySql 中使用分隔符时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试运行此程序.

i am trying to run this procedure.

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 ;

虽然我已经在各个地方检查过语法对我来说似乎是正确的.但是我收到以下错误

though i have checked at various places an syntax seems right to me. BUT i am getting the following error

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

Error code 1064, SQL state 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER // CREATE PROCEDURE updateBooks (IN book_id VARCHAR(20), IN units INT)' at line 2 Line 1, column 1

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

Error code 1064, SQL state 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'END // DELIMITER' at line 1 Line 8, column 1

任何帮助都会很棒.并且我使用的是 mySQL 5.6 版

Any help would be great. ANd i am using mySQL version 5.6

推荐答案

必须用一个分隔符(在你的例子中它是一个分号)终止 USE 语句.

You have to terminate USE statement with a delimiter (in your case it is a semicolon).

USE dbsample;
            ^

另一个问题是您在

... SET quantity = quantity – units
                            ^

<小时>

UPDATE: 现在,由于 UPDATE 是您的过程中唯一的语句,您不必使用 BEGIN ... END 块和更改 DELIMITER


UPDATE: Now since UPDATE is the only statement in your procedure you don't have to use BEGIN ... END block and change DELIMITER

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

这是SQLFiddle 演示

Here is SQLFiddle demo

这篇关于在 mySql 中使用分隔符时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆