As regras permitem a “árvore de comando” de uma consulta de entrada para ser reescrito. Um uso comum é a implementação de pontos de vista, incluindo visão atualizável. - Wikipedia
O objetivo dessa lição: Aprender a criar novas regras para o banco de dados.
Digamos que você queira registrar cada mudança de phone_no em sua tabela de pessoas em a uma tabela people_log. Então você configurar uma nova tabela
create table people_log (name text, time timestamp default NOW());
No próximo passo, criar uma regra que registra todas as alterações de uma phone_no na tabela de pessoas na tabela de 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);
Para testar se a regra funciona, vamos modificar um número de telefone
update people set phone_no = '082 555 1234' where id = 2;
Verifique se pessoas tabela foi atualizado corretamente
select * from people where id=2;
id | name | house_no | street_id | phone_no
----+------------+----------+-----------+--------------
2 | Joe Bloggs | 3 | 2 | 082 555 1234
(1 row)
Agora, graças à regra que criamos, a tabela people_log será parecido com isto
select * from people_log;
name | time
------------+----------------------------
Joe Bloggs | 2014-01-11 14:15:11.953141
(1 row)
Nota
O valor do campo time vai depender da data e hora atual.
As regras permitem que você automaticamente adicione ou altere dados em seu banco de dados para refletir mudanças em outras partes do banco de dados.
O próximo módulo irá apresentá-lo ao banco de dados espacial com PostGIS, que leva esses conceitos de banco de dados e os aplica a dados GIS.