0
모든 저장 프로 시저에 대해 일종의 감사 기능을 만들고 있습니다. 저장 프로 시저에있는 매개 변수의 이름을 가져올 수 있습니다 (information_schema.parameters 테이블에서). 그러나 매개 변수의 이름을 가져와 해당 호출에 대한 해당 매개 변수의 값을 가져 와서 다른 테이블에 로그인하는 모든 저장 프로 시저에 대한 일반 코드를 만들고 싶습니다.저장 프로 시저의 매개 변수 값을 동적으로 가져옵니다.
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `TestSP`(IN `name` VARCHAR(255), IN `userid` INT(255), IN `isnew` VARCHAR(11))
BEGIN
#DECLARE exit handler for sqlexception ROLLBACK;
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
ROLLBACK;
INSERT INTO app_db_log(TYPE,MESSAGE, INFO) VALUES ('ERROR','An error has occurred, operation rollback and the stored procedure was terminated',<INSERT ALL THE PARAMETER VALUES AS SINGLE STRING HERE>);
COMMIT;
SELECT 'An error has occurred, operation rollback and the stored procedure was terminated';
END;
START TRANSACTION;
SIGNAL SQLSTATE '45000';
COMMIT;
END$$
DELIMITER ;
미리 감사드립니다.
답장을 보내 주셔서 감사합니다. 하지만 제 요구 사항은 약간 다릅니다. 예를 들어 'foo, bar'를 가져올 수 있었지만 저장 프로 시저에서 'foo = 123, bar = 456'과 같은 것을 찾으려고합니다. –
같은 문제 - 변수 이름을 사용하여 값을 가져올 수 없습니다. –