选择一个唯一的行

时间:2013-10-06 11:54:53

标签: mysql

我怎样才能实现这种独特性..没有列只有行,例如。 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 

2 个答案:

答案 0 :(得分:1)

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

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

foo只是约束的名称 - 您可能想要选择更具说明性的名称)

此约束可确保res_idres_monthres_year的每个组合只能出现一次。

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

INSERT INTO tbl (res_id, res_month, res_year) VALUES (2, 'October', '2013');

答案 1 :(得分:0)

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