Importante
La traduzione è uno sforzo comunitario you can join. Questa pagina è attualmente tradotta al 100.00%.
15.6. Lezione: Regole
Le regole permettono di riscrivere l“«albero delle query» di una query in ingresso. Un uso comune è quello di implementare le viste, inclusa la vista aggiornabile. - Wikipedia
Obiettivo di questa lezione: Imparare a creare nuove regole per il database.
15.6.1. Creare una regola di log
Supponiamo che tu voglia registrare ogni modifica di phone_no nella tua tabella people in una tabella people_log. Quindi crei una nuova tabella:
create table people_log (name text, time timestamp default NOW());
Nel passo successivo, crea una regola che registri nella tabella people_log ogni modifica di un phone_no nella tabella people:
create rule people_log as on update to people
where NEW.phone_no <> OLD.phone_no
do insert into people_log values (OLD.name);
Per verificare che la regola funzioni, modifichiamo un numero di telefono:
update people set phone_no = '082 555 1234' where id = 2;
Verifica che la tabella people sia stata aggiornata correttamente:
select * from people where id=2;
id | name | house_no | street_id | phone_no
----+------------+----------+-----------+--------------
2 | Joe Bloggs | 3 | 2 | 082 555 1234
(1 row)
Ora, grazie alla regola che abbiamo creato, la tabella people_log avrà questo aspetto:
select * from people_log;
name | time
------------+----------------------------
Joe Bloggs | 2014-01-11 14:15:11.953141
(1 row)
Nota
Il valore del campo time dipenderà dalla data e dall’ora corrente.
15.6.2. In Conclusione
Le regole ti permettono di aggiungere o cambiare automaticamente i dati nel tuo database per rispecchiare i cambiamenti in altre parti del database.
15.6.3. Cosa Segue?
Il prossimo modulo ti introdurrà ai Database Spaziali utilizzando PostgreSQL con l’estensione PostGIS, che riprende questi concetti di database e li applica ai dati GIS.