Important
Traducerea este un efort al comunității, la care puteți să vă alăturați. În prezent, această pagină este tradusă 53.33%.
15.6. Lesson: Rules
Regulile permit „arborelui de interogare” rescrierea interogărilor primite. O utilizare comună o reprezintă implementarea vederilor, inclusiv a celor actualizabile. - Wikipedia
Scopul acestei lecții: De a afla cum se pot crea noi reguli pentru baza de date.
15.6.1. Crearea unei reguli de jurnalizare
Say you want to log every change of phone_no in your people table in to a
people_log table. So you set up a new table:
create table people_log (name text, time timestamp default NOW());
In the next step, create a rule that logs every change of a phone_no in the
people table into the people_log table:
create rule people_log as on update to people
where NEW.phone_no <> OLD.phone_no
do insert into people_log values (OLD.name);
Pentru a testa funcționarea regulii, haideți să modificăm un număr de telefon:
update people set phone_no = '082 555 1234' where id = 2;
Check that the people table was updated correctly:
select * from people where id=2;
id | name | house_no | street_id | phone_no
----+------------+----------+-----------+--------------
2 | Joe Bloggs | 3 | 2 | 082 555 1234
(1 row)
Now, thanks to the rule we created, the people_log table will look like
this:
select * from people_log;
name | time
------------+----------------------------
Joe Bloggs | 2014-01-11 14:15:11.953141
(1 row)
Notă
The value of the time field will depend on the current date
and time.
15.6.2. În concluzie
Regulile vă permit adăugarea sau modificarea automată a datelor din baza de date, pentru a reflecta modificările din alte părți ale bazei de date.
15.6.3. Ce urmează?
The next module will introduce you to Spatial Database using PostgreSQL with PostGIS extension, which takes these database concepts and applies them to GIS data.