列已删除,现在要添加约束

时间:2016-02-10 07:11:02

标签: sql postgresql

我使用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_tograde_month外键以及graded_by列。它也很独特。 这可能意味着在那个月,graded_to评分gradeMonth,并且同一个月中同一两名员工不应该有两个评分。

此外,如果有帮助,相应的Java实体没有相应的{{1}}列。

1 个答案:

答案 0 :(得分:0)

原来答案确实是一个简单的UNIQUE约束:

CONSTRAINT grade_month_uniq UNIQUE (graded_to, graded_by, grade_month)

我使用了它,它可以用于预期目的。

谢谢@NickBarnes。