MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

【MySQL解説】トリガー作成時に区切り文字(DELIMITER)を変更する必要があるのはなぜ?

MySQLでは通常、各ステートメントの終わりを示す区切り文字(デリミタ)として、セミコロン(;)がデフォルトで使用されます。しかし、トリガー(TRIGGER)を作成する際には、この区切り文字を一時的に変更する必要があります。

なぜ区切り文字を変更するのか?

その理由は、トリガー本体には複数のSQLステートメントを記述できるためです。区切り文字を変更せずにトリガーを定義すると、MySQLはトリガー内部の最初のセミコロン(;)に出達した時点で「トリガー定義の終了」と誤って判断してしまいます。

そこで区切り文字を別の記号に変更することで、「この記号が出現するまでの一連のコードがひとまとまりのトリガー定義である」ということをMySQLに明確に伝えることができるのです。

DELIMITERコマンドによる変更方法

区切り文字を一時的に変更するには、DELIMITER // ステートメントを使用します。これにより、デフォルトのセミコロン(;)から、2連続のスラッシュ記号(//)へと変更されます。

mysql> DELIMITER //

この設定後は、MySQLが「//」に到達してはじめてステートメントの終了と認識するため、トリガー内部でセミコロンを使った複数のSQL文を問題なく記述できます。

区切り文字を元に戻す方法

トリガーの作成が完了したら、忘れずに区切り文字を元のセミコロン(;)へ戻しておきましょう。以下のステートメントを実行します。

mysql> DELIMITER ;

注意点

DELIMITERキーワードと、区切り文字として指定する記号との間には、必ず半角スペースを1つ挿入してください。スペースが空いていないと、コマンドが正しく認識されない場合があります。

  1. リモートデスクトップのリッスンポートを変更する方法【レジストリとファイアウォール設定】

    リモートデスクトップは、Windowsに標準搭載された非常に便利な機能です。離れた場所にあるPCに接続し、まるで目の前のマシンを操作しているかのように扱えます。たとえば、職場から自宅のPCにアクセスしたい場合でも、自宅PCでリモートデスクトップが有効になっていれば簡単に接続できます。 ただし、RDP(リモートデスクトッププロトコル)はデフォルトでポート3389を使用します。このポート番号はあまりにも有名なため、攻撃者にも広く知られており、セキュリティリスクにつながる可能性があります。そこで本記事では、リモートデスクトップのリッスンポートを変更する手順を詳しく解説します。 事前準備:復元ポイン

  2. なぜiPadにはiPadOSが必要なのか?新OSの魅力と進化の可能性

    WWDCで発表されたiPadOSとは?WWDC(Apple Worldwide Developers Conference)で最も衝撃的な発表の一つとなったのが、iPad向けの独立したOS「iPadOS」でした。AppleがついにiPad専用のオペレーティングシステムを投入する日が来るとは、予想していた人は少なかったでしょう。iPadOSの発表により、マルチタスク関連の数々の新機能や改善がもたらされました。iOS 13の登場を待ち望んでいたiPadユーザーにとって、今年はさらに嬉しいニュースとなったのです。iPadOSはiOSと同じ基盤の上に開発されていますが、iPadの大型ディスプレイに最適