Я пытаюсь получить следующий доступный идентификатор с помощью хранимой процедуры, но до сих пор я не могу заставить это работать. Это моя хранимая процедураРезультат состоял из более чем одной ошибки строки 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**
, когда я запустить ВЫЗОВ запрос UpdateID («17000001», «GJ», @test) я получаю результат ошибки состояла из более чем одной строки
Im довольно уверен, что значение, которое будет извлечено, - это всего лишь одна запись. колонка tranid - это уникальный ключ. То же самое относится к типу – John
Вы пытались запустить операторы 'SELECT' вручную? (и без' INTO'-part) и посмотреть, что возвращается? – gkalpak
yup. он возвратил одно значение. – John