gpt4 book ai didi

mysql - 分隔符在 MySQL 5.1 上不起作用

转载 作者:行者123 更新时间:2023-11-30 01:25:34 25 4
gpt4 key购买 nike

我需要在单个过程中使用两个插入语句来更新主表和详细表,因此我尝试使用 delimiter 关键字来实现此目的。我正在使用 phpMyAdmin 3.5.8、客户端 libmysql - 5.0.96 和 mysql 5.1.70。我尝试过各种语法,但似乎都不起作用。这是我的查询:

DELIMITER //
CREATE PROCEDURE `agregarPrincipio` (IN ID_PRODUCTO INT UNSIGNED, IN DESCR VARCHAR(100))
BEGIN
START TRANSACTION;
INSERT INTO `TM_PRINCIPIO_ACTIVO` (`DESCRIPCION`) VALUES(DESCR);
INSERT INTO TD_PRINCIPIO_ACTIVO(`ID_TD_PRINCIPIO_ACTIVO`,`ID_TM_PRINCIPIO_ACTIVO`) VALUES(ID_PRODUCTO,LAST_INSERT_ID());
COMMIT; 
END
//
DELIMITER ;

对可能发生的事情有什么想法吗?

最佳答案

问题出在行上

INSERT INTO TD_PRINCIPIO_ACTIVO(`ID_TD_PRINCIPIO_ACTIVO`,`ID_TM_PRINCIPIO_ACTIVO`) VALUES(ID_PRODUCTO,LAST_INSERT_ID());

。您尝试在第二个 select 语句中直接调用存储过程 LAST_INSERT_ID()。如果LAST_INSERT_ID()返回单个值,请尝试将其保存在变量中。然后使用该变量

DECLARE last_id int default 0;
SET last_id= SELECT LAST_INSERT_ID(); #if it is a function other wise use exec
INSERT INTO TD_PRINCIPIO_ACTIVO(`ID_TD_PRINCIPIO_ACTIVO`,`ID_TM_PRINCIPIO_ACTIVO`) VALUES(ID_PRODUCTO,last_id);

关于mysql - 分隔符在 MySQL 5.1 上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18035265/

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