gpt4 book ai didi

mysql - IF Else 在存储过程中不起作用

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

CREATE PROCEDURE p1 
(
IN name_val VARCHAR(255),
OUT iJobID INT
)


BEGIN

IF NOT EXISTS (SELECT id FROM test WHERE id='11')

BEGIN

INSERT INTO test(name) VALUES(name_val);
SET iJobID := LAST_INSERT_ID();
END

ELSE
BEGIN

UPDATE test SET name=name_val WHERE id = 11;
END

INSERT INTO vasu2(vname) VALUES(name_val);
SET @ivD := LAST_INSERT_ID();

INSERT INTO vasu(id, id2) VALUES(iJobID, @ivD);
END;

最佳答案

您正在使用的 IF 语法很可能用于 T-SQL。此外,您需要更改 delimiter

DELIMITER $$
CREATE PROCEDURE p1
(
IN name_val VARCHAR(255),
OUT iJobID INT
)
BEGIN

SET @recCount := (SELECT COUNT(*) FROM test WHERE id = 11);
IF @recCount > 0 THEN
INSERT INTO test(name) VALUES(name_val);
SET iJobID := LAST_INSERT_ID();
ELSE
UPDATE test SET name=name_val WHERE id = 11;
END IF;

INSERT INTO vasu2(vname) VALUES(name_val);
SET @ivD := LAST_INSERT_ID();

INSERT INTO vasu(id, id2) VALUES(iJobID, @ivD);
END $$
DELIMITER ;

关于mysql - IF Else 在存储过程中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14646898/

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