CREATE TABLE corehole_clearing
(
gid integer NOT NULL DEFAULT nextval('corehole_clearing_gid_seq'::regclass),
atsid character varying(254) DEFAULT NULL::character varying,
geom geometry,
CONSTRAINT corehole_clearing_pkey PRIMARY KEY (gid),
CONSTRAINT corehole_clearing_the_geom_check CHECK (srid(geom) = 4269),
CONSTRAINT corehole_clearing_the_geom_check1 CHECK (geometrytype(geom) = 'MULTIPOLYGON'::text OR geom IS NULL),
CONSTRAINT corehole_clearing_the_geom_check2 CHECK (ndims(geom) = 2)
)
WITH (
OIDS=FALSE
);
CREATE TRIGGER corehole_clearing_history
AFTER INSERT OR UPDATE OR DELETE
ON corehole_clearing
FOR EACH ROW
EXECUTE PROCEDURE corehole_clearing_audit();
--TRIGGER FUNCTION--
CREATE OR REPLACE FUNCTION corehole_clearing_audit()
RETURNS trigger AS
$BODY$
BEGIN
--
-- Create a row in corehole_clearing_history to reflect the operation performed on corehole_clearing,
-- make use of the special variable TG_OP to work out the operation. --
IF (TG_OP = 'DELETE') THEN
INSERT INTO corehole_clearing_history SELECT 'DELETED', now(), user, OLD.*;
RETURN OLD;
ELSIF (TG_OP = 'UPDATE') THEN
INSERT INTO corehole_clearing_history SELECT 'UPDATED', now(), user, NEW.*;
RETURN NEW;
ELSIF (TG_OP = 'INSERT') THEN
INSERT INTO corehole_clearing_history SELECT 'INSERTED', now(), user, NEW.*;
RETURN NEW;
END IF;
RETURN NULL; -- result is ignored since this is an AFTER trigger
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
CONSTRAINT corehole_clearing_the_geom_check1 CHECK (geometrytype(geom) = 'MULTIPOLYGON'::text OR geom IS NULL),