# HG changeset patch # User Raimund Renkert # Date 1461940713 -7200 # Node ID 9121d99a471eef8018e8baabc49345249b099d00 # Parent 20547dfc436e65fa11995a2001610325b6057f0a Use databse triggers for update on field 'letzteAenderung'. diff -r 20547dfc436e -r 9121d99a471e db_schema/lada_schema.sql --- a/db_schema/lada_schema.sql Wed Apr 13 20:34:37 2016 +0200 +++ b/db_schema/lada_schema.sql Fri Apr 29 16:38:33 2016 +0200 @@ -39,9 +39,26 @@ END; $$; +CREATE FUNCTION update_letzte_aenderung() RETURNS trigger + LANGUAGE plpgsql + AS $$ + BEGIN + NEW.letzte_aenderung = now(); + RETURN NEW; + END; +$$; SET search_path = land, pg_catalog; +CREATE FUNCTION update_letzte_aenderung() RETURNS trigger + LANGUAGE plpgsql + AS $$ + BEGIN + NEW.letzte_aenderung = now(); + RETURN NEW; + END; +$$; + -- -- Name: is_probe_fertig(integer); Type: FUNCTION; Schema: land; Owner: - -- @@ -197,6 +214,7 @@ letzte_aenderung timestamp with time zone NOT NULL, gueltig_bis timestamp with time zone ); +CREATE TRIGGER letzte_aenderung_list BEFORE UPDATE ON list FOR EACH ROW EXECUTE PROCEDURE update_letzte_aenderung(); -- @@ -255,6 +273,7 @@ status integer, letzte_aenderung timestamp without time zone DEFAULT now() ); +CREATE TRIGGER letzte_aenderung_messung BEFORE UPDATE ON messung FOR EACH ROW EXECUTE PROCEDURE update_letzte_aenderung(); -- @@ -309,6 +328,7 @@ grenzwertueberschreitung boolean DEFAULT false, letzte_aenderung timestamp without time zone DEFAULT now() ); +CREATE TRIGGER letzte_aenderung_messwert BEFORE UPDATE ON messwert FOR EACH ROW EXECUTE PROCEDURE update_letzte_aenderung(); -- @@ -335,6 +355,7 @@ ortszusatztext character varying(100), letzte_aenderung timestamp without time zone DEFAULT now() ); +CREATE TRIGGER letzte_aenderung_ortszuordnung BEFORE UPDATE ON ortszuordnung FOR EACH ROW EXECUTE PROCEDURE update_letzte_aenderung(); -- @@ -381,6 +402,8 @@ letzte_aenderung timestamp without time zone DEFAULT now() ); +CREATE TRIGGER letzte_aenderung_probe BEFORE UPDATE ON probe FOR EACH ROW EXECUTE PROCEDURE update_letzte_aenderung(); + -- -- Name: COLUMN probe.id; Type: COMMENT; Schema: bund; Owner: - -- @@ -500,6 +523,7 @@ letzte_aenderung timestamp without time zone DEFAULT now(), nwg_zu_messwert double precision ); +CREATE TRIGGER letzte_aenderung_zusatzwert BEFORE UPDATE ON zusatz_wert FOR EACH ROW EXECUTE PROCEDURE update_letzte_aenderung(); SET search_path = land, pg_catalog; @@ -564,6 +588,7 @@ probe_kommentar character varying(80), letzte_aenderung timestamp without time zone DEFAULT now() NOT NULL ); +CREATE TRIGGER letzte_aenderung_messprogramm BEFORE UPDATE ON messprogramm FOR EACH ROW EXECUTE PROCEDURE update_letzte_aenderung(); -- -- Name: messprogramm_id_seq; Type: SEQUENCE OWNED BY; Schema: land; Owner: - @@ -590,6 +615,7 @@ messgroessen integer[], letzte_aenderung timestamp without time zone DEFAULT now() ); +CREATE TRIGGER letzte_aenderung_messprogramm_mmt BEFORE UPDATE ON messprogramm_mmt FOR EACH ROW EXECUTE PROCEDURE update_letzte_aenderung(); -- diff -r 20547dfc436e -r 9121d99a471e db_schema/stammdaten_schema.sql --- a/db_schema/stammdaten_schema.sql Wed Apr 13 20:34:37 2016 +0200 +++ b/db_schema/stammdaten_schema.sql Fri Apr 29 16:38:33 2016 +0200 @@ -14,6 +14,14 @@ SET search_path = stammdaten, pg_catalog; +CREATE FUNCTION update_letzte_aenderung() RETURNS trigger + LANGUAGE plpgsql + AS $$ + BEGIN + NEW.letzte_aenderung = now(); + RETURN NEW; + END; +$$; CREATE FUNCTION get_media_from_media_desk(media_desk character varying) RETURNS character varying LANGUAGE plpgsql @@ -219,6 +227,7 @@ letzte_aenderung timestamp without time zone, UNIQUE(da_erzeuger_id, netzbetreiber_id) ); +CREATE TRIGGER letzte_aenderung_datensatz_erzeuger BEFORE UPDATE ON datensatz_erzeuger FOR EACH ROW EXECUTE PROCEDURE update_letzte_aenderung(); ALTER SEQUENCE datensatz_erzeuger_id_seq OWNED BY datensatz_erzeuger.id; @@ -454,6 +463,7 @@ letzte_aenderung timestamp without time zone, UNIQUE(mpl_id, netzbetreiber_id) ); +CREATE TRIGGER letzte_aenderung_messprogramm_kategorie BEFORE UPDATE ON messprogramm_kategorie FOR EACH ROW EXECUTE PROCEDURE update_letzte_aenderung(); ALTER SEQUENCE messprogramm_kategorie_id_seq OWNED BY messprogramm_kategorie.id; @@ -522,6 +532,7 @@ oz_id integer, UNIQUE(ort_id, netzbetreiber_id) ); +CREATE TRIGGER letzte_aenderung_ort BEFORE UPDATE ON ort FOR EACH ROW EXECUTE PROCEDURE update_letzte_aenderung(); ALTER TABLE ONLY ort ADD CONSTRAINT ort_anlage_fkey FOREIGN KEY (anlage_id) REFERENCES ort(id); @@ -608,6 +619,7 @@ letzte_aenderung timestamp without time zone, UNIQUE(prn_id, netzbetreiber_id) ); +CREATE TRIGGER letzte_aenderung_probenehmer BEFORE UPDATE ON probenehmer FOR EACH ROW EXECUTE PROCEDURE update_letzte_aenderung(); ALTER SEQUENCE probenehmer_id_seq OWNED BY probenehmer.id;