changeset 926:9121d99a471e

Use databse triggers for update on field 'letzteAenderung'.
author Raimund Renkert <raimund.renkert@intevation.de>
date Fri, 29 Apr 2016 16:38:33 +0200
parents 20547dfc436e
children 690b6506e0a2
files db_schema/lada_schema.sql db_schema/stammdaten_schema.sql
diffstat 2 files changed, 38 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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();
 
 
 --
--- 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;
 
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)