CREATE TABLE audit.A_audit_1 ( CHECK (end_rev_time > '2013-09-04 17:30:08.942' or end_rev_time is null) ) INHERITS (audit.A_audit);
CREATE TABLE audit.A_audit_2 ( CHECK (end_rev_time <= '2013-09-04 17:30:08.942') ) INHERITS (audit.A_audit);
CREATE INDEX action_audit_A_1 ON audit.A_audit_1 USING btree (end_rev_time);
CREATE INDEX action_audit_A_2 ON audit.A_audit_2 USING btree (end_rev_time);
--- Trigger function
CREATE OR REPLACE FUNCTION on_action_log_insert()
RETURNS TRIGGER AS $$
BEGIN
IF ( NEW.end_rev_time > '2013-09-04 17:30:08.942' or NEW.end_rev_time is null)
THEN
INSERT INTO audit.A_audit_1 VALUES (NEW.*);
ELSE
INSERT INTO audit.A_audit_2 VALUES (NEW.*);
END IF;
RETURN NULL;
END;
$$ LANGUAGE plpgsql;
--- Attach trigger function to table
CREATE TRIGGER action_log_insert
BEFORE INSERT ON audit.A_audit
FOR EACH ROW EXECUTE PROCEDURE on_action_log_insert();
postgres的分表
最新推荐文章于 2023-12-20 20:18:37 发布