Outdated version of the documentation. Find the latest one here.

15.6. Lesson: Reglas

Las reglas permiten la “un árbol de consulta” de una consulta de entrada para reescribir. Un uso común es implementar vistas, incluyendo vista actualizable .*- Wikipedia*

La meta de esta lección: Aprender cómo crear nuevas reglas para la base de datos.

15.6.1. Vistas materializadas (Regla basada en vistas)

Decir que desea todos los registros de cambios de phone_on en su tabla de people en una tabla people_log. Así se configura una nueva tabla:

create table people_log (name text, time timestamp default NOW());

En el siguiente paso, crear una regla que registre todos los cambios de un phone_on en la tabla de people qu esten dentro de la tabla 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 probar que la regla funciona, vamos a modificar un número telefónico:

update people set phone_no = '082 555 1234' where id = 2;

Verificar que la tabla people fue actualizada correctamente:

select * from people where id=2;

 id |    name    | house_no | street_id |   phone_no
----+------------+----------+-----------+--------------
  2 | Joe Bloggs |        3 |         2 | 082 555 1234
(1 row)

Ahora, gracias a la regla que creamos, la tabla se verá así:

select * from people_log;

    name    |            time
------------+----------------------------
 Joe Bloggs | 2014-01-11 14:15:11.953141
(1 row)

Nota

El valor del campo time dependerá de la fecha y hora actual.

15.6.2. In Conclusion

Reglas le permiten agregar automáticamente o cambiar los datos de su base de datos para reflejar los cambios en otras partes de la base de datos.

15.6.3. What’s Next?

El siguiente módulo le dará a conocer las base de datos espaciales utilizando PostGIS, que toma estos conceptos de bases de datos y las aplica a los datos GIS.