SQLite3にテーブルにデータが更新update時トリガーを作成する方法

環境
Windows 10 Home 64bit
sqlite 3.37.0

構文
テーブルに対してUPDATEが行われた時にトリガーを設定します。

CREATE TRIGGER トリガー名 UPDATE OF カラム名 ON テーブル名
 BEGIN
  SQL文1;
  SQL文2;
  xxx
 END;

操作方法
1.テーブルitemを作成します

sqlite> create table item(uid integer, uname text, price integer);

テーブルnewsを作成します

sqlite> create table news(uid integer primary key, title text);

2.itemテーブルにデータが更新時にトリガーが起動し、newsテーブルのtitleカラムにデータを記録します。
更新トリガーの作成

sqlite> create trigger triggerupdate update on item
   ...>  begin
   ...>  insert into news(title) values('update trigger opeartion 222');
   ...> end;

3.itemsテーブルへデータを追加します

sqlite> insert into item values(666, 'yamada01', 29);

4.itemテーブルへ追加したデータを一部更新します

sqlite> update item set uname = 'oosaki' where uid = 666;

itemテーブルのデータが更新されると同時にトリガーが起動してnewsテーブルにデータを追加しています。

5.更新トリガーの内容を確認します

sqlite> select * from news;
1|insert trigger opeartion 111
2|insert trigger opeartion 111
3|update trigger opeartion 222

 

SQLite

Posted by arkgame