微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 MYSQL 版本 (6.0.11-alpha-community) 中创建带有 CRUD 操作的参数化存储过程

如何解决如何在 MYSQL 版本 (6.0.11-alpha-community) 中创建带有 CRUD 操作的参数化存储过程

我在 MysqL 版本 (6.0.11-alpha-community) 中创建了一个带 CRUD 操作的参数化存储过程

DELIMITER $$

CREATE PROCEDURE `mae`.`USP_CustomersToken_CURD`(IN CID INT,IN CName VARCHAR(50),IN CToken VARCHAR(250),IN CTokenTime DATETIME,IN OPType INT)

 BEGIN

IF (OPType = 1) --Insert
THEN
INSERT INTO tbl_CustomersTokenInfo (ID,CustomerName,Token,TokenTime) VALUES (CID,CName,CToken,CTokenTime)

ELSEIF (OPType = 2) --delete
THEN
DELETE FROM tbl_CustomersTokenInfo WHERE ID = CID

ELSEIF (OPType = 3) --Update
THEN
UPDATE tbl_CustomersTokenInfo SET CustomerName = CName,Token = CToken,TokenTime = CTokenTime WHERE ID = CID

ELSEIF (OPType = 4) --Select
THEN
SELECT * FROM tbl_CustomersTokenInfo WHERE ID =CID

ELSEIF (OPType = 5)--Fetch 
THEN
SELECT * FROM tbl_CustomersTokenInfo
END IF

    END$$

DELIMITER ;

但是当我执行这个 SP 时,我收到以下错误

查询:CREATE PROCEDURE mae.USP_CustomersToken_CURD(IN CID INT,IN CTokenTime DATETI...

错误代码:1064 您的 sql 语法有错误;检查与您的 MysqL 服务器版本相对应的手册,了解在“THEN”附近使用的正确语法 INSERT INTO tbl_CustomersTokenInfo (ID,TokenTime) VAL' 在第 4 行

执行时间:0秒 传输时间:0 秒 总时间:0秒

我是 MysqL 命令和语法的新手,如果我犯了任何错误,请提供最佳方法

解决方法

  1. MySQL(与大多数其他 DBMS 不同)不喜欢用 -- 引入的注释,其中 -- 后面没有空格。
  2. 您需要使用 IF 终止所有语句,包括 END IF 语句(在 ; 之后)。

更正:

DELIMITER $$

CREATE PROCEDURE `mae`.`USP_CustomersToken_CURD`(IN CID INT,IN CName VARCHAR(50),IN CToken VARCHAR(250),IN CTokenTime DATETIME,IN OPType INT)

 BEGIN

IF (OPType = 1) -- Insert
THEN
INSERT INTO tbl_CustomersTokenInfo (ID,CustomerName,Token,TokenTime) VALUES (CID,CName,CToken,CTokenTime);

ELSEIF (OPType = 2) -- delete
THEN
DELETE FROM tbl_CustomersTokenInfo WHERE ID = CID;

ELSEIF (OPType = 3) -- Update
THEN
UPDATE tbl_CustomersTokenInfo SET CustomerName = CName,Token = CToken,TokenTime = CTokenTime WHERE ID = CID;

ELSEIF (OPType = 4) -- Select
THEN
SELECT * FROM tbl_CustomersTokenInfo WHERE ID =CID;

ELSEIF (OPType = 5)-- Fetch 
THEN
SELECT * FROM tbl_CustomersTokenInfo;
END IF;

    END$$

DELIMITER ;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。