1

我怎样才能实现这种唯一性.. 没有唯一的列只有行,例如。ID # 2 在 10 月份有记录,ID # 2 不能有 2 条信息, res_month = 'October'

res_id | res_month | res_year
   1   | September | 2013
   2   | September | 2013
   3   | September | 2013
   4   | September | 2013 
   2   | October   | 2013
   3   | October   | 2013
   4   | October   | 2013 
4

2 回答 2

1

UNIQUE KEY您可以在多个字段上构建约束:

ALTER TABLE tbl ADD UNIQUE KEY foo (res_id, res_month, res_year);

foo这只是约束的名称 - 您可能需要选择一个更具解释性的名称)

此约束确保 和 的每个组合只能res_id出现一次。res_monthres_year

有了这个,INSERT一个已经存储的组合就会产生Unique constraint failed错误。在您的示例中,这将失败,因为该组合已经存在:

INSERT INTO tbl (res_id, res_month, res_year) VALUES (2, 'October', '2013');
于 2013-10-06T12:43:12.937 回答
0

在 res_id 列上添加唯一约束这将不允许 res_id 列中的重复值

于 2013-10-06T12:02:08.917 回答