3
我在我的應用程序中使用下面的示例存儲過程:MySQL存儲過程OUT變量返回NULL
DELIMITER $$
DROP PROCEDURE IF EXISTS `test`.`sp_item`$$
CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_item`(
IN name VARCHAR(255),
OUT item_id INT(11)
)
BEGIN
DECLARE item_id INT DEFAULT 0;
START TRANSACTION;
INSERT INTO `item` (`name`) VALUES(name);
SET @item_id := LAST_INSERT_ID();
COMMIT;
END$$
DELIMITER ;
當我執行使用此過程: -
CALL sp_item("TEST1",@item_id);
,並使用獲取最後插入的ID : -
SELECT @item_id;
然後,我得到NULL作爲結果,但記錄插入成功到數據庫。
谷歌搜索後我找不到任何相關的幫助。
我在這裏失蹤了什麼?
謝謝你把我放在正確的軌道上。 – neeraj
那麼它怎麼叫? – cerd
@cerd您必須刪除前導'@'。我編輯了答案,使其更加清晰。 –