【MySQL解説】トリガー作成時に区切り文字(DELIMITER)を変更する必要があるのはなぜ?
MySQLでは通常、各ステートメントの終わりを示す区切り文字(デリミタ)として、セミコロン(;)がデフォルトで使用されます。しかし、トリガー(TRIGGER)を作成する際には、この区切り文字を一時的に変更する必要があります。
なぜ区切り文字を変更するのか?
その理由は、トリガー本体には複数のSQLステートメントを記述できるためです。区切り文字を変更せずにトリガーを定義すると、MySQLはトリガー内部の最初のセミコロン(;)に出達した時点で「トリガー定義の終了」と誤って判断してしまいます。
そこで区切り文字を別の記号に変更することで、「この記号が出現するまでの一連のコードがひとまとまりのトリガー定義である」ということをMySQLに明確に伝えることができるのです。
DELIMITERコマンドによる変更方法
区切り文字を一時的に変更するには、DELIMITER // ステートメントを使用します。これにより、デフォルトのセミコロン(;)から、2連続のスラッシュ記号(//)へと変更されます。
mysql> DELIMITER //
この設定後は、MySQLが「//」に到達してはじめてステートメントの終了と認識するため、トリガー内部でセミコロンを使った複数のSQL文を問題なく記述できます。
区切り文字を元に戻す方法
トリガーの作成が完了したら、忘れずに区切り文字を元のセミコロン(;)へ戻しておきましょう。以下のステートメントを実行します。
mysql> DELIMITER ;
注意点
DELIMITERキーワードと、区切り文字として指定する記号との間には、必ず半角スペースを1つ挿入してください。スペースが空いていないと、コマンドが正しく認識されない場合があります。
-
リモートデスクトップのリッスンポートを変更する方法【レジストリとファイアウォール設定】
リモートデスクトップは、Windowsに標準搭載された非常に便利な機能です。離れた場所にあるPCに接続し、まるで目の前のマシンを操作しているかのように扱えます。たとえば、職場から自宅のPCにアクセスしたい場合でも、自宅PCでリモートデスクトップが有効になっていれば簡単に接続できます。 ただし、RDP(リモートデスクトッププロトコル)はデフォルトでポート3389を使用します。このポート番号はあまりにも有名なため、攻撃者にも広く知られており、セキュリティリスクにつながる可能性があります。そこで本記事では、リモートデスクトップのリッスンポートを変更する手順を詳しく解説します。 事前準備:復元ポイン
-
なぜiPadにはiPadOSが必要なのか?新OSの魅力と進化の可能性
WWDCで発表されたiPadOSとは?WWDC(Apple Worldwide Developers Conference)で最も衝撃的な発表の一つとなったのが、iPad向けの独立したOS「iPadOS」でした。AppleがついにiPad専用のオペレーティングシステムを投入する日が来るとは、予想していた人は少なかったでしょう。iPadOSの発表により、マルチタスク関連の数々の新機能や改善がもたらされました。iOS 13の登場を待ち望んでいたiPadユーザーにとって、今年はさらに嬉しいニュースとなったのです。iPadOSはiOSと同じ基盤の上に開発されていますが、iPadの大型ディスプレイに最適