簡體   English   中英

Postgresql 約束排除

[英]Postgresql constraint exclusion

我有一個名為 audittrailreference 的大表,所以我根據日期對其進行了分區(一天 1 個表)。

該表有兩個日期字段(intime 和 outtime)

對於任何行,它們中的任何一個都可以為空,但不能同時為空,或者它們都可能帶有日期。

現在我需要放置約束排除以提高查詢的性能。

我的表結構如下:

CREATE TABLE myschema.auditrtailreference
(
    event smallint,
    innodeid character varying(80),
    innodename character varying(80),
    sourceid character varying(300),
    intime timestamp without time zone,
    outnodeid character varying(80),
    outnodename character varying(80),
    destinationid character varying(300),
    outtime timestamp without time zone,
    bytes integer,
    cdrs integer,
    noofsubfilesinfile integer,
    recordsequencenumberlist character varying(1000),
    partial_cdrs integer,
    duplicate_cdrs integer,
    discarded_cdrs integer,
    created_cdrs integer,
    corrupted_cdrs integer,
    created_files integer,
    duplicate_files integer,
    corrupted_files integer,
    partial_files integer,
    discarded_files integer,
    empty_files integer
)
WITH (
    OIDS=FALSE
);
ALTER TABLE myschema.auditrtailreference
    OWNER TO erix;

-- Trigger: auditrtailreference_trigger on myschema.auditrtailreference

-- DROP TRIGGER auditrtailreference_trigger ON myschema.auditrtailreference;

CREATE TRIGGER auditrtailreference_trigger
    BEFORE INSERT
    ON myschema.auditrtailreference
    FOR EACH ROW
    EXECUTE PROCEDURE myschema.auditrtailreference_partition_function();

我已經在我自己的兄弟身上做到了

感謝大家的時間

CONSTRAINT "auditrtailreference_2014-10-02_intime_check" CHECK (intime >= '2014-10-02 00:00:00'::timestamp without time zone AND intime < '2014-10-03 00:00:00'::timestamp without time zone OR intime IS NULL),
  CONSTRAINT "auditrtailreference_2014-10-02_outtime_check" CHECK (outtime >= '2014-10-02 00:00:00'::timestamp without time zone AND outtime < '2014-10-03 00:00:00'::timestamp without time zone OR outtime IS NULL)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM