16.6. Lesson: Regels¶
Regels maken het mogelijk de “queryboom” van een inkomende query te herschrijven. Een veel voorkomend gebruik is om weergaven te implementeren, inclusief een bij te werken weergave. - Wikipedia
Het doel voor deze les:: Leren nieuwe regels voor de database te maken.
16.6.1. Een regel voor loggen maken¶
Stel dat u elke wijziging van phone_no in uw tabel people wilt loggen in een tabel people_log. Dus maakt u een nieuwe tabel:
create table people_log (name text, time timestamp default NOW());
Maak, in de volgende stap, een regel die elke wijziging van een telefoonnummer in de tabel people in de tabel people_log logt:
create rule people_log as on update to people
where NEW.phone_no <> OLD.phone_no
do insert into people_log values (OLD.name);
Laten we een telefoonnummer aanpassen om te testen of de regel werkt:
update people set phone_no = '082 555 1234' where id = 2;
Controleer of de tabel people juist werd bijgewerkt:
select * from people where id=2;
id | name | house_no | street_id | phone_no
----+------------+----------+-----------+--------------
2 | Joe Bloggs | 3 | 2 | 082 555 1234
(1 row)
Dankzij de regel die we hebben gemaakt, zal de tabel people_log er nu zo uitzien:
select * from people_log;
name | time
------------+----------------------------
Joe Bloggs | 2014-01-11 14:15:11.953141
(1 row)
Notitie
De waarde van het veld time is afhankelijk van de huidige datum en tijd.
16.6.2. In Conclusion¶
Regels stellen u in staat automatisch gegevens toe te voegen of te wijzigen in uw database om wijzigingen in andere delen van de database weer te geven.
16.6.3. What’s Next?¶
De volgende module brengt u naar het gebruiken van de Ruimtelijke database met behulp van PostGIS, wat deze concepten overneemt en die toepast op gegevens voor GIS.