我使用CREATE TABLE employee_grade
(
id uuid NOT NULL DEFAULT uuid_generate_v4(),
graded_to uuid,
grade character varying(10),
graded_by uuid,
grade_date timestamp with time zone,
grade_month timestamp with time zone,
CONSTRAINT employee_grade_pkey PRIMARY KEY (id),
CONSTRAINT employee_grade_by_fk FOREIGN KEY (graded_by)
REFERENCES employee (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION,
CONSTRAINT employee_grade_to_fk FOREIGN KEY (graded_to)
REFERENCES employee (id) MATCH SIMPLE
ON UPDATE NO ACTION ON DELETE NO ACTION
)
删除了表格中的列。我没有意识到附加了约束。现在约束也被删除了。如何添加约束?我不知道该约束的确切措辞。此外,该表是空的,所以在那一刻我认为该列永远不会被填充并删除它。
这是pgadmin3中的表CREATE查询:
graded_by
我不知道约束是什么,但我知道它涉及graded_to
和grade_month
外键以及graded_by
列。它也很独特。
这可能意味着在那个月,graded_to
评分gradeMonth
,并且同一个月中同一两名员工不应该有两个评分。
此外,如果有帮助,相应的Java实体没有相应的{{1}}列。
答案 0 :(得分:0)
原来答案确实是一个简单的UNIQUE约束:
CONSTRAINT grade_month_uniq UNIQUE (graded_to, graded_by, grade_month)
我使用了它,它可以用于预期目的。
谢谢@NickBarnes。