MySQL에서 저장 프로 시저가있어 테이블에서 다음 고유 ID를 가져 와서 다른 두 테이블의 ID로 사용합니다 (최선의 방법은 아닙니다. 확실하지만 여기서는 다른 사람의 코드를 수정하고 있습니다.)MySQL 저장 프로 시저 : OUT 매개 변수가 설정되어 있지 않습니다.
DELIMITER $$
CREATE DEFINER=`root`@`%` PROCEDURE `GetNextID`(OUT id bigint)
BEGIN
DECLARE uid VARCHAR(255);
SET uid = uuid();
INSERT INTO `ident_column_generator` (u) VALUES (uid);
SELECT ID INTO id FROM `ident_column_generator` WHERE u = uid;
DELETE FROM `ident_column_generator` WHERE u = uid;
END$$
를 내가 MySQL의 워크 벤치에서 절차를 호출 할 때 :
CALL GetNextID(@id);
SELECT @id;
@id가 NULL
입니다 절차는 다음과. 나는 잘못된 일을 해결할 수 없습니까? 프로 시저를 호출하기 전에 SET @id = 0;
을 실행하더라도 나중에 NULL로 끝납니다. 내가 @id
출력 잘 MySQL의 워크 벤치, 예컨대 :
SET @uid = uuid();
INSERT INTO `ident_column_generator` (u) VALUES (@uid);
SELECT ID INTO @id FROM `ident_column_generator` WHERE u = @uid;
DELETE FROM `ident_column_generator` WHERE u = @uid;
SELECT @id;
에서 수동 프로 시저 내에서 함수를 호출하면이 유효한 숫자 것으로 @id 출력합니다.
id
이 (가) 제대로 설정되지 않은 이유는 무엇입니까?
같은 문제가 발생했습니다 ........ :) –