저는 Postgres를 처음 사용하고 있으며 pgAdmin III를 사용하여 테이블 (metrics_reaches
)을 작성하고 있습니다.Postgres LIKE 고유 제한이 있습니까?
내 테이블에는 insertion_timestamp
의 타임 스탬프가있는 유형 열이 있습니다.
UNIQUE
제약을 만들고 싶습니다. 다른 필드 중에서도 insertion_timestamp
의 날짜 부분 만 확인하고 시간은 확인하지 않아야합니다.
할 방법이 있습니까? 지금 내 스크립트가 어떻게 생겼는지 보여줍니다 (마지막 CONSTRAINT
참조).
-- Table: metrics_reaches
-- DROP TABLE metrics_reaches;
CREATE TABLE metrics_reaches
(
organizations_id integer NOT NULL,
applications_id integer NOT NULL,
countries_id integer NOT NULL,
platforms_id integer NOT NULL,
...
insertion_timestamp timestamp with time zone NOT NULL,
id serial NOT NULL,
CONSTRAINT metrics_reaches_pkey PRIMARY KEY (id),
CONSTRAINT metrics_reaches_applications_id_fkey FOREIGN KEY (applications_id)
REFERENCES applications (id) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT metrics_reaches_countries_id_fkey FOREIGN KEY (countries_id)
REFERENCES countries (id) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT metrics_reaches_organizations_id_fkey FOREIGN KEY (organizations_id)
REFERENCES organizations (id) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT metrics_reaches_platforms_id_fkey FOREIGN KEY (platforms_id)
REFERENCES platforms (id) MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE,
CONSTRAINT metrics_reaches_organizations_id_key UNIQUE (organizations_id, applications_id, countries_id, platforms_id, insertion_timestamp)
)
WITH (
OIDS=FALSE
);
ALTER TABLE metrics_reaches
OWNER TO postgres;
프랭크의 대답에 대한 코멘트가 여기에 적합하지 않으므로 별도의 답변으로 게시됩니다. –