トリガースキーマ(構造)を確認する
SQLite の環境でトリガーがどのようにどのような CREATE 文を使って作成されたのかについて確認する方法について解説します。 sqlite_master テーブルを利用する方法と .schema コマンドを使用する方法の二通りがあります。
(Last modified: )
sqlite_masterテーブルから取得する
まず最初は sqlite_master テーブルを利用する方法です。次のように SQL 文を実行して下さい。
select * from sqlite_master;
作成済のテーブルやトリガーに関するデータが取得できます。今回取得したデータの中でトリガーに関するデータは次のものです。
type = trigger name = updateproduct tbl_name = product rootpage = 0 sql = CREATE TRIGGER updateproduct update of name on product begin update history set name = new.name where name = old.name; end
type カラムにはトリガーの場合は trigger と表示されます(テーブルの場合は table です)。 name カラムにはトリガー名、 tbl_name カラムにはトリガーの対象のテーブル名、 sql カラムにはトリガーを作成した時の SQL 文が表示されます。
トリガーに関するデータだけを表示するには、 WHERE 句を使い次のように実行します。
select * from sqlite_master where type = 'trigger';
.schemaコマンドを使って取得する
トリガーのスキーマに関する情報だけ取得したい場合には SQLite コマンドの .schema でも確認できます。
.schema
.schema ?TABLE?
引数を省略すれば全てのテーブルやトリガーのスキーマ情報を表示します。また引数にテーブル名を指定すると、テーブル名に一致するテーブルや指定したテーブル名を対象としたインデックスだけのトリガー情報を表示することができます。
では実際に試してみます。
.schema
現在データベースの中に作成されている 4 つのテーブル及び 1 つのトリガーに関する CREATE 文が表示されました。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。