본문 바로가기
error/Server&DB

프로시저 생성 실패(DECLARE, SET)

by 이쟝 2023. 9. 9.

문제 상황 

CREATE PPOCEDURE 하려는데 계속 무시함 

 

해결

변수 생성 시 변수를 초기화 하고, 거기에 값을 SET 해야 했는데 그렇게 하지 않아서 안됐음

DELIMITER $$
create procedure make_partition()
BEGIN
    DECLARE 변수이름1 VARCHAR(255);
    DECLARE 변수이름2 INT;
    
    SET 변수이름1 = ;
    SET 변수이름2 = ;
    -- 새로운 파티션 생성
	SET @sql = CONCAT(
		'ALTER TABLE DB이름.테이블 ADD PARTITION(
			PARTITION ', 변수이름1 , ' VALUES LESS THAN (', 변수이름2, '));');
    PREPARE dquery FROM @sql;  
    EXECUTE dquery; #실행
    DEALLOCATE PREPARE dquery; #prepare문 해제
END $$
DELIMITER ;

 

혹시나 그래도 프로시저 생성 안된다면?

// OFF로 되어있으면 권한이 없어서 함수와 프로시저 생성 못함
SHOW GLOBAL VARIABLES LIKE 'LOG_BIN_TRUST_FUNCTION_CREATORS';
// 권한 실행 쿼리
SET GLOBAL LOG_BIN_TRUST_FUNCTION_CREATORS = 1;