gpt4 book ai didi

MySQL 存储过程作为普通 SQL 工作

转载 作者:行者123 更新时间:2023-11-29 11:43:10 24 4
gpt4 key购买 nike

我正在尝试编写一个存储过程,该存储过程插入一个表 (A),然后查询另一个表 (B),最后将最后一个插入 id 以及表 B 的结果插入表 (C)。我编写了一个名为 VetIdFromCode 的存储过程来从表 B 中进行选择,它单独工作时效果很好。当我单独运行查询时,替换 IN 参数的值,然后它运行正常,但是当我尝试将其保存为存储过程时,它告诉我“SET @LIID ...”附近的无效 SQL非常感谢您的帮助。

CREATE PROCEDURE `NewClientUser`(
IN `uemail` VARCHAR(60),
IN `uphash` CHAR(40),
IN `uvcode` VARCHAR(11))
DETERMINISTIC
MODIFIES SQL DATA
SQL SECURITY INVOKER
INSERT INTO users (user_id,user_email,user_hash,user_role)
VALUES (NULL,uemail,uphash,'1');
SET @LIID = LAST_INSERT_ID();
CALL `VetIdFromCode`(uvcode, @VID);
INSERT INTO user_vet_lookup(user_id,vet_id)
VALUES (@LIID,@VID);

最佳答案

您需要以关键字“BEGIN”开始该过程的“代码”,并在末尾放置一个“END”。喜欢:

CREATE PROCEDURE `NewClientUser`(
IN `uemail` VARCHAR(60),
IN `uphash` CHAR(40),
IN `uvcode` VARCHAR(11))
BEGIN
DETERMINISTIC
MODIFIES SQL DATA
SQL SECURITY INVOKER
INSERT INTO users (user_id,user_email,user_hash,user_role)
VALUES (NULL,uemail,uphash,'1');
SET @LIID = LAST_INSERT_ID();
CALL `VetIdFromCode`(uvcode, @VID);
INSERT INTO user_vet_lookup(user_id,vet_id)
VALUES (@LIID,@VID);
END

查看文档:http://dev.mysql.com/doc/refman/5.7/en/create-procedure.html

关于MySQL 存储过程作为普通 SQL 工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35422077/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com