1
我想通過存儲過程獲得下一個可用的id,但到目前爲止我無法使其工作。這是我的存儲過程結果包含多個行錯誤mysql
DELIMITER $$
USE `devt`$$
DROP PROCEDURE IF EXISTS `updateid`$$
CREATE DEFINER=`root`@`%` PROCEDURE `updateid`(IN `tran_id` VARCHAR(15), IN `typ` VARCHAR(15), OUT `lid` VARCHAR(15))
BEGIN
DECLARE id VARCHAR(15);
SET id = '';
SELECT TranID FROM journal WHERE TranID = tranid INTO id;
read_loop: LOOP
SELECT TranID FROM journal WHERE TranID = id INTO id;
IF id = tran_id THEN
UPDATE journaltype SET journaltype.NextRefNbr = journaltype.NextRefNbr + 1 WHERE journaltype.JournalType = typ;
SELECT journaltype.NextRefNbr FROM journaltype WHERE journaltype.JournalType = typ INTO id;
ITERATE read_loop;
ELSE
SET lid= id;
LEAVE read_loop;
END IF;
END LOOP;
END$$
DELIMITER ;**strong text**
當我運行查詢CALL updateid(「17000001」,「GJ」,@test)我得到一個錯誤的結果包括多行的
林相當肯定,將被檢索的值只是一個單一的條目。列tranid是一個獨特的關鍵。 – John 2013-05-09 08:56:02
類型是否與您嘗試運行'SELECT'語句「手動」(並且沒有'INTO'部分)並查看返回的內容? – gkalpak 2013-05-09 09:41:57
是。它返回一個單一的值。 – John 2013-05-09 10:27:33