Loading...
MySQL 9.5 Reference Manual 9.5의 15.1.9 ALTER PROCEDURE Statement의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
1ALTER PROCEDURE proc_name [characteristic ...] 2 3characteristic: { 4 COMMENT 'string' 5 | LANGUAGE {SQL | JAVASCRIPT} 6 | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } 7 | SQL SECURITY { DEFINER | INVOKER } 8 | USING([library_reference][, library_reference][, ...]) 9}
이 statement는 저장 프로시저의 특성을 변경하는 데 사용할 수 있습니다.
ALTER PROCEDURE statement에서 둘 이상의 변경을 지정할 수 있습니다.
그러나 이 statement를 사용해서 저장 프로시저의 매개변수나 본문을 변경할 수는 없습니다.
이러한 변경을 수행하려면 DROP PROCEDURE 및 CREATE PROCEDURE를 사용하여 프로시저를 drop하고 다시 생성해야 합니다.
프로시저에 대해 ALTER ROUTINE 권한을 보유해야 합니다.
기본적으로 이 권한은 프로시저 생성자에게 자동으로 부여됩니다.
이 동작은 automatic_sp_privileges 시스템 변수를 비활성화하여 변경할 수 있습니다.
Section 27.2.2, “Stored Routines and MySQL Privileges”를 참조하십시오.
USING 절은 JavaScript로 작성된 저장 프로그램에만 적용되며 (Section 27.3, “JavaScript Stored Programs” 참조),
저장 프로시저에 의해 import될 0개 이상의 라이브러리 목록을 지정할 수 있게 해 줍니다.
이때 이전의 해당 목록은 제거됩니다 (이는 ALTER FUNCTION의 경우와 마찬가지입니다).
가능한 결과는 다음과 같습니다:
USING 절이 사용되고 하나 이상의 라이브러리를 나열하는 경우: ALTER PROCEDURE statement가 실행된 후,
프로시저는 ALTER FUNCTION statement에 나열된 라이브러리만 import하며, 이전에 나열되었던 라이브러리는 목록에서 제거되고 더 이상 import되지 않습니다.
statement에 비어 있는 USING 절이 포함된 경우: 이전에 import되었던 모든 라이브러리가 목록에서 제거되며, function은 더 이상 어떤 라이브러리도 import하지 않습니다.
USING이 사용되지 않는 경우: 프로시저가 생성될 때 지정된 라이브러리 목록에 아무런 변경도 가해지지 않습니다.
예시는 다음과 같습니다:
ALTER PROCEDURE myproc USING(lib1, lib2);(USING에 비어 있지 않은 목록을 사용하는 경우:) 실행 후,
myproc은 lib1 및 lib2 라이브러리만 import하며, 다른 라이브러리는 import하지 않습니다.
ALTER PROCEDURE myproc USING();(USING에 빈 목록을 사용하는 경우:) 실행 후,
myproc은 더 이상 어떤 라이브러리도 import하지 않습니다.
ALTER PROCEDURE myproc COMMENT "This procedure was altered";(USING 절이 없는 경우:) 이 statement가 실행되기 전과 동일한 라이브러리들을 계속해서 import합니다.
15.1.8 ALTER LOGFILE GROUP Statement
15.1.10 ALTER SERVER Statement