13.6.1 BEGIN ... END 복합 명령문 구문
[ begin_label
:] BEGIN [ statement_list
] END [ end_label
]
BEGIN ... END
구문은 저장 프로그램 (저장 프로 시저와 저장 함수, 트리거 및 이벤트)에 지정할 수있는 복합 문을 작성하는 데 사용됩니다. 복합 명령문은 BEGIN
및 END
키워드로 둘러싸인 다중 명령문을 포함 할 수 있습니다. statement_list
는 각각 세미콜론 ( ;
) 문 구분자로 끝나는 하나 이상의 문 목록을 나타냅니다. statement_list
자체가 옵션이기 때문에 빈 복합 문 ( BEGIN END
)는 정당입니다.
BEGIN ... END
블록은 중첩 될 수 있습니다.
여러 문을 사용하려면 클라이언트가 ;
문 구분자가있는 문 문자열을 보낼 수 있어야합니다. mysql 명령 행 클라이언트에서는 이것은 delimiter
명령으로 처리됩니다. 문 종료 구분자 ;
을 (예를 들어, //
) 변경하면 프로그램 본체에서 ;
사용이 허가됩니다. 예를 들어, 섹션 20.1 "저장 프로그램의 정의" 를 참조하십시오.
BEGIN ... END
블록에는 라벨을 넣을 수 있습니다. 섹션 13.6.2 "문 레이블 구문" 을 참조하십시오.
옵션 [NOT] ATOMIC
절은 지원되지 않습니다. 즉,이 명령 블록의 시작에서 트랜잭션 세이브 포인트는 설정되지 않고,이 문맥에서 사용되는 BEGIN
절은 현재 트랜잭션에 영향을주지 않습니다.
모든 저장 프로그램에서 파서는 BEGIN [WORK]
를 BEGIN ... END
블록의 시작으로 간주합니다. 이러한 맥락에서 트랜잭션을 시작하려면 대신 START TRANSACTION
을 사용합니다.