집 >데이터 베이스 >MySQL 튜토리얼 >mysql에서 저장 프로시저를 수정하는 명령은 무엇입니까?
mysql에서 저장 프로시저를 수정하는 명령은 "ALTER PROCEDURE"이고 구문 형식은 "ALTER PROCEDURE 저장 프로시저 이름 [특성...]"이며 가능한 특성 값은 CONTAINS SQL, NO SQL, INVOKER, DEFINER 등
(추천 튜토리얼: mysql 동영상 튜토리얼)
실제 개발 과정에서 비즈니스 요구 사항이 수시로 변경되므로 MySQL의 저장 프로시저 수정은 불가피합니다.
MySQL에서는 ALTER PROCEDURE 문을 통해 저장 프로시저를 수정합니다. 이 섹션에서는 저장 프로시저를 수정하는 방법을 자세히 설명합니다.
MySQL에서 저장 프로시저를 수정하기 위한 구문 형식은 다음과 같습니다.
ALTER PROCEDURE 存储过程名 [ 特征 ... ]
특성은 저장 프로시저의 특성을 지정합니다. 가능한 값은 다음과 같습니다.
CONTAINS SQL은 서브루틴에 SQL 문이 포함되어 있음을 의미합니다. Data 문을 읽거나 쓰는 것은 포함되지 않습니다.
NO SQL은 서브루틴에 SQL 문이 포함되어 있지 않음을 의미합니다.
READS SQL DATA는 서브루틴에 데이터를 읽는 명령문이 포함되어 있음을 나타냅니다.
MODIFIES SQL DATA는 서브루틴에 데이터 쓰기 명령문이 포함되어 있음을 나타냅니다.
SQL SECURITY { DEFINER |INVOKER }는 실행 권한이 있는 사람을 지정합니다.
DEFINER는 정의자만이 실행할 수 있다는 뜻입니다.
INVOKER는 호출자가 실행할 수 있음을 의미합니다.
COMMENT '문자열'은 댓글 정보를 나타냅니다.
예제 1
아래 저장 프로시저의 showtuscore 정의를 수정하고, 읽기 및 쓰기 권한을 MODIFIES SQL DATA로 변경하고, 호출자가 이를 실행할 수 있음을 나타냅니다.
mysql> ALTER PROCEDURE showstuscore MODIFIES SQL DATA SQL SECURITY INVOKER; Query OK, 0 rows affected (0.01 sec)
Execute. 코드를 수정하고 수정된 정보를 보면 실행 결과는 다음과 같습니다.
mysql> SHOW CREATE PROCEDURE showstuscore \G *************************** 1. row *************************** Procedure: showstuscore sql_mode: STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION Create Procedure: CREATE DEFINER=`root`@`localhost` PROCEDURE `showstuscore`() MODIFIES SQL DATA SQL SECURITY INVOKER BEGIN SELECT id,name,score FROM studentinfo; END character_set_client: gbk collation_connection: gbk_chinese_ci Database Collation: latin1_swedish_ci 1 row in set (0.00 sec)
결과는 저장 프로시저가 성공적으로 수정되었음을 보여줍니다. 실행 결과를 보면 데이터에 접근할 수 있는 권한이 MODIFIES SQL DATA로 변경되고, 보안 유형도 INVOKE로 변경된 것을 확인할 수 있습니다.
팁: ALTER PROCEDURE 문은 저장 프로시저의 특정 특성을 수정하는 데 사용됩니다. 저장 프로시저의 내용을 수정하려면 원래 저장 프로시저를 먼저 삭제한 다음 동일한 이름으로 새 저장 프로시저를 생성하면 됩니다. 저장 프로시저의 이름을 수정하려면 원본을 삭제하면 됩니다. 먼저 저장 프로시저를 만든 다음 다른 이름으로 새 저장 프로시저를 만듭니다.
관련 권장 사항: php training
위 내용은 mysql에서 저장 프로시저를 수정하는 명령은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!