>  기사  >  데이터 베이스  >  mysql에서 저장 프로시저를 수정하는 명령은 무엇입니까?

mysql에서 저장 프로시저를 수정하는 명령은 무엇입니까?

青灯夜游
青灯夜游원래의
2020-10-12 09:58:283738검색

mysql에서 저장 프로시저를 수정하는 명령은 "ALTER PROCEDURE"이고 구문 형식은 "ALTER PROCEDURE 저장 프로시저 이름 [특성...]"이며 가능한 특성 값은 CONTAINS SQL, NO SQL, INVOKER, DEFINER 등

mysql에서 저장 프로시저를 수정하는 명령은 무엇입니까?

(추천 튜토리얼: 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.