GNU/Linux >> Linux の 問題 >  >> Ubuntu

MySQLSHOWトリガーの使用方法

はじめに

MySQLのSHOW TRIGGERS ステートメントは、データベーステーブルに定義されているすべてのトリガーを表示します。このコマンドは、名前、イベントタイミング、その他の詳細など、既存のトリガーの詳細を提供するのに役立ちます。

ステートメントは単純でオプションなしで機能しますが、オプションを追加すると、データ列がさらに絞り込まれ、フィルタリングされます。その結果、このコマンドは必要な情報をすばやく取得するのに役立ち、データベース内のトリガーステートメントの概要をより正確に提供します。

このチュートリアルでは、SHOW TRIGGERSについて説明します。 例を使用してMySQLのステートメントを詳細に説明します。

前提条件

  • ターミナルまたはMySQLWorkbenchを介したMySQLサーバーへのアクセス。
  • sudo特権。
  • MySQLまたはTRIGGERユーザー権限を持つアカウントへのrootアクセス。
  • トリガーを含むデータベーステーブル。

構文

SHOW TRIGGERSの構文 ステートメントは次のとおりです:

SHOW TRIGGERS 
[{FROM | IN} <database name>] 
[ WHERE <expression> LIKE '<pattern>']

ステートメントがどのように機能するかを理解するために、各部分の機能は次のとおりです。

  • SHOW TRIGGERS 現在のデフォルトデータベースの追加オプションなしで動作します。
  • FROM <database name> またはIN <database name> 検索するデータベース名を提供します。 FROMを追加します またはIN 特定のデータベースからのトリガーを表示するためのデータベース名を句とステートメントで指定します。
  • WHERE <expression> 提供された式に基づいて、結果から行を選択します。
  • LIKE '<pattern>' WHEREをフィルタリングします 式とパターンに一致する値のみを表示します。

MySQLの表示トリガー:ステートメントはどのように機能しますか?

SHOW TRIGGERS ステートメントは、作業データベースで定義されているすべてのトリガーを示しています。特定のオプションを追加すると、データベースを選択せず​​にデータベースからのトリガー情報を表示できます。さらに、追加のオプションを使用すると、出力をフィルタリングして絞り込み検索を行うことができます。

開始する前に、ターミナルを開きます( CTRL + ALT + T )そしてデータベースサーバーに接続します:

sudo mysql -u <username> -p

プロンプトがmysql>に変わります 、MySQLモニターへの接続が成功したことを示します。

トリガーのリスト

SHOW TRIGGERSを使用してトリガーを一覧表示する方法は2つあります。 ステートメント:

1.データベースに接続せずにトリガーを一覧表示するには、 FROMを追加します またはIN 句を指定し、データベース名を指定します。

例:

SHOW TRIGGERS IN <database name>\G
SHOW TRIGGERS FROM <database name>\G

2.または、最初にデータベースに接続します:

USE <database name>;

次に、パラメータなしでコマンドを実行します。

SHOW TRIGGERS\G

どちらの場合も、出力には、定義されたすべてのトリガーを含むテーブルが表示されます。

結果セットのSHOWTRIGGERS列

SHOW TRIGGERSからの結果の出力 ステートメントは、特定のトリガーに関する詳細を含む各行を表示します。

すべての列には次の属性が含まれています:

  • トリガー はトリガー名です。
  • イベント トリガーがアクティブになったときのアクションを示します。
  • トリガーが存在するテーブルの名前です。
  • ステートメント トリガーの機能を示します。具体的には、トリガーがアクティブ化されたときに実行される完全なSQLステートメントがこのフィールドに出力されます。
  • タイミング イベントに関連してトリガーが実行されるタイミングを示します。
  • 作成済み ユーザーがトリガーを行った日時を出力します。
  • sql_mode トリガーの実行時に有効なSQLサーバーモードを一覧表示します。
  • 定義者 トリガーと接続を作成したユーザーを[email protected]として指定します
  • character_set_client クライアントからのステートメントの文字セットを示しています。
  • collat​​ion_connection 定義者がトリガーを作成したときに文字列を比較およびソートするための文字セットルールを定義します。
  • データベース照合 は、トリガーに関連付けられた文字列を並べ替えて比較するときのデータベースの文字セットを示しています。

MySQL SHOWトリガー:例

WHEREを使用する またはLIKE SHOW TRIGGERから列を選択するステートメント ANDを出力して使用します OR およびNOT 検索をさらにフィルタリングする演算子。以下の例は、典型的な使用例を示しています。

トリガーを表で表示

テーブル名でトリガーを一覧表示するには、次の2つの方法のいずれかを使用します。

1.テーブルからのトリガーをなしで表示します 次の方法でデータベースに接続する:

SHOW TRIGGERS 
FROM <database name> 
WHERE `Table`='<table name>'\G

たとえば、データベース名が peopleの場合 テーブル名はperson 、使用:

SHOW TRIGGERS 
FROM people 
WHERE `Table`='person'\G

2.または、最初にデータベースに接続します。

USE <database name>;

次に、 SHOW TRIGGERSを使用します WHEREのみ 条項:

SHOW TRIGGERS 
WHERE `Table`='<table name>'\G

たとえば、データベースの場合people テーブル付きperson 、実行:

USE people;
SHOW TRIGGERS 
WHERE `Table`='person'\G

どちらの場合も、出力には特定のテーブルのすべてのトリガーが行ごとに一覧表示されます。

イベントごとにトリガーを表示

すべてのトリガーは、特定のMySQLイベントステートメントでアクティブになります。イベントごとにトリガーを一覧表示するには、次の構文を使用します。

SHOW TRIGGERS
FROM <database name>
WHERE `Event`='<event>'\G

または、最初にデータベースに接続します:

USE <database name>;
SHOW TRIGGERS 
WHERE `Event`='<event>'\G

<event>で可能なオプション は:

  • INSERT -ユーザーがデータをテーブルに挿入したときにトリガーをアクティブにします。
  • UPDATE -ユーザーがテーブルデータを更新したときにトリガーを実行します。
  • DELETE -ユーザーがテーブルからデータを削除したときにトリガーを実行します。

例:

SHOW TRIGGERS 
FROM people 
WHERE `Event`='DELETE'\G

出力には、イベントが DELETEであるトリガーのみが表示されます

タイミングごとにトリガーを表示

タイミング パラメータはイベントにリンクしています 、トリガーが BEFOREをアクティブにするかどうかを示します またはAFTER イベントステートメント。データベースに接続せずにタイミングに基づいてトリガーを表示するには、次の構文を使用します。

SHOW TRIGGERS
FROM <database name>
WHERE `Timing`='<timing>'\G

最初にデータベースに接続してから、タイミングごとにトリガーを一覧表示するには、次を使用します。

USE <database name>;
SHOW TRIGGERS
WHERE `Timing`='<timing>'\G

パラメータの例では、ステートメントは次のようになります。

SHOW TRIGGERS 
FROM people 
WHERE Timing='AFTER'\G

SHOW TRIGGERS ステートメント出力には、タイミングのトリガーが表示されます AFTERに設定

ステートメントごとにトリガーを表示

ステートメント 列には、トリガーが呼び出されたときに実行されるSQLステートメントが含まれています。

コマンドをLIKEと組み合わせます トリガーステートメントを検索する句:

SHOW TRIGGERS
FROM <database name>
WHERE `Statement` LIKE '<pattern>'\G

または、最初にデータベースを選択して、 FROMを削除します ステートメントの一部:

USE <database name>;
SHOW TRIGGERS 
WHERE `Statement` LIKE '<pattern>'\G

LIKE ステートメントは、ワイルドカード(%)文字を使用してパターンマッチング検索を実行します:

  • %を使用する 最後に、特定の単語で始まるステートメントに一致します。たとえば、 'IF%' IFで始まるすべてのオカレンスに一致します ステートメント。
  • %を追加します 最初に、指定された単語で終わるステートメントと一致します。例: '%IF' IFで終わるすべてのステートメントに一致します ステートメント。
  • %と書く ステートメントの両側で、ステートメント内の任意の場所にある単語を検索します。

トリガーの検索例ステートメント AVGを含むテーブル内 MySQL関数は次のとおりです:

SHOW TRIGGERS 
FROM people 
WHERE `Statement` LIKE '%AVG%'\G

クエリは、 AVGを含むすべてのステートメントを取得します 機能。

検索パラメータの組み合わせ

検索パラメータをANDと組み合わせる 複雑なクエリを作成する演算子。たとえば、MySQL AVGを含むトリガーを検索するには 機能し、 DELETEがあります イベント、実行:

SHOW TRIGGERS
FROM people
WHERE `Statement` LIKE '%AVG%' AND `Event`='DELETE'\G

結果は、両方のステートメントが Trueと評価されるトリガーを示しています 。追加のクエリ構築については、 NOTを使用してください およびOR 演算子。

MySQLWorkbenchでトリガーを表示する

すべてのSHOW TRIGGERS 前の例のステートメントは、MySQLWorkbenchで機能します。唯一の違いは、コマンドがセミコロン( ;)で終わることです。 \Gの代わりに MySQLWorkbenchで。

MySQL Workbenchでトリガーを表示するには、次のようにします。

1.ターミナルからMySQLWorkbenchを実行します( CTRL + ALT + T )次のコマンドを使用します:

mysql-workbench

または、GUIを使用してアプリケーションリストでMySQLWorkbenchを検索します。

2.データベースサーバーに接続する接続を選択します。

3.プロンプトが表示されたら、ユーザーパスワードを入力します。

4. SHOW TRIGGERSを追加します クエリボックスへのステートメント:

SHOW TRIGGERS;

5.最後に、クエリを実行します。

結果は、すべてのトリガーを含むテーブルとして表示されます。


Ubuntu
  1. MySQLデータベースの照合を変更する方法は?

  2. MySQLデータベースをコピーする方法

  3. cPanelでMySQLデータベースを作成する方法

  1. phpMyAdminを使用してMySQLデータベースをコピーする方法

  2. MySQLにリモート接続する方法

  3. cPanelMySQLデータベースウィザードの使用方法

  1. WorkbenchでMySQLデータベースを作成する方法

  2. LinuxでDDShowProgressコマンドを使用する方法は?

  3. MySQLデータベースを修復する方法