如何限制第1列条目在第2列(postgresql)中有重复条目?

时间:2016-04-02 06:26:11

标签: sql postgresql

简要说明: 我有table1的列employee_id,month,amount_spent

员工一个月内只能有一个条目

employee_id  month     amount_spent
E-124        JANUARY   200$
E-124        MARCH      14$
E-78         JANUARY    56$

我想限制(E-124,JANUARY,14 $)的参赛作品,因为E-124已经提交了1月份的费用。

1 个答案:

答案 0 :(得分:0)

您应该应用排除约束。

定义:

  • 排除约束确保如果使用指定的运算符在指定的列或表达式上比较任何两行,则这些运算符比较中的至少一个将返回false或null。

示例:

CREATE TABLE COMPANY7(
   employee_id INT NOT NULL,
   month           CHAR(10),
   amount_spent    REAL,
   EXCLUDE USING gist
   (employee_id WITH =,
   month WITH <>)
);

希望它会对你有所帮助。 :)