ルールは “query tree” に書き換えることができます. 一つの一般的な使用法は, 更新可能なビューを含めて実装することです. Wikipediaより
このレッスンの目標: データベースの新しいルールを作成する方法を学習する.
people テーブルにある phone_no の変更すべてを people_log テーブルにログとして記録したいとする. その場合には新しいテーブルを設定する
create table people_log (name text, time timestamp default NOW());
次のステップでは, people テーブル内の phone_no の変更すべてを people_log テーブルにログとして記録するルールを作成
create rule people_log as on update to people
where NEW.phone_no <> OLD.phone_no
do insert into people_log values (OLD.name);
ルールが正しく機能することを確認するには, 電話番号を変更してみましょう
update people set phone_no = '082 555 1234' where id = 2;
people テーブルが正しく更新されたことを確認してください
select * from people where id=2;
id | name | house_no | street_id | phone_no
----+------------+----------+-----------+--------------
2 | Joe Bloggs | 3 | 2 | 082 555 1234
(1 row)
今, 作成したルールによって, people_log テーブルは次のようになります
select * from people_log;
name | time
------------+----------------------------
Joe Bloggs | 2014-01-11 14:15:11.953141
(1 row)
ノート
time フィールドの値は, 現在の日付と時刻に依存します.
ルールを使用すると, データベースの他の部分の変更を反映するために, 自動的にデータベース内のでデータを追加または変更することができます.
次のセクションは,これらのデータベースの概念を使い, GIS データに適用した PostGIS を使用する, 空間データベースを紹介します.