MySQL5.7とMySQL8の両方で、BEGIN およびEND T-SQLと同じで、C、Java、C#などの中括弧のように、「コードのブロック」とも呼ばれる「複合ステートメント」を表します。
- MySQL 5.7: https://dev.mysql .com / doc / refman / 5.7 / en / begin-end.html
- MySQL 8.0: https://dev.mysql .com / doc / refman / 8.0 / en / begin-end.html
ただし、BEGIN キーワードも (紛らわしい)BEGIN WORKのエイリアスとしてオーバーロード およびSTART TRANSACTION
、およびそれらのセマンティクスは、ストアドプログラム内で使用されているかどうかによって異なります。
だから:
START TRANSACTION- 常にトランザクションを開始します。この構文をお勧めします。
-
BEGIN:- ストアドプロシージャ、関数、トリガー、またはイベントを使用している場合は、
BEGINそれ自体が複合ステートメントの開始を示します。START TRANSACTIONのみを使用できます トランザクションを開始します。 - MySQLに対してSQLを直接実行している場合、これはトランザクションも開始します(
BEGIN WORKとして解釈されるため) )。ただし、このように使用するのはばかげて混乱するため、避けてください。
- ストアドプロシージャ、関数、トリガー、またはイベントを使用している場合は、
-
BEGIN WORK:- これは
START TRANSACTIONのエイリアスです 。混乱を防ぐために、これを完全に使用することは避けたいと思います。
- これは