C# Mysql重复行问题

C# Mysql重复行问题,c#,mysql,C#,Mysql,我的mysql表4中有一个七列,如果它已经有值1,2,3,4,那么它就是一个B C D 然后,如果有人想重新添加他,那么表不允许这样做,我怎么做呢?据我所知,您可以将MySQL字段设置为唯一,但不能将字段组合设置为唯一 因此,首先做一个简单的查询,看看组合a=1,B=2,C=3,D=4是否已经存在。如果没有,请添加它,否则会提示用户一个错误。为什么不为a、B、C、D创建一个唯一的键呢 ALTER TABLE <tablename> ADD UNIQUE KEY (A, B, C, D

我的mysql表4中有一个七列,如果它已经有值1,2,3,4,那么它就是一个B C D
然后,如果有人想重新添加他,那么表不允许这样做,我怎么做呢?据我所知,您可以将MySQL字段设置为唯一,但不能将字段组合设置为唯一


因此,首先做一个简单的查询,看看组合a=1,B=2,C=3,D=4是否已经存在。如果没有,请添加它,否则会提示用户一个错误。

为什么不为a、B、C、D创建一个唯一的键呢

ALTER TABLE <tablename> ADD UNIQUE KEY (A, B, C, D);
altertable添加唯一键(A、B、C、D);

我可能看错了问题,但这只适用于需要单个a=1、a=2等的情况;一个B=1,B=2,等等。但是,如果你只想要唯一的组合,比如“a=1,B=2,C=3,D=4”,这是行不通的。因为“A=1,B=2,C=3,D=4”将不同于“A=1,B=2,C=1,D=1”,但这是不允许的,因为已经有一个B=2。@Alec:复合唯一约束意味着所有值(在本例中为四个)组成一个不同的值。IE:如果存在1,1,1,1,则第二次尝试将行添加或更新为1,1,1,1将返回错误。但是1,2,1,1和1,1,2,1会起作用…@OMG Ponies,很好。不知道这是可能的:)@rich kid:您可以输入该语句,就像它用于现有表一样。如果a、b、c、d已经有多个值,则它将失败。然后,您必须先删除它们@Alec:4个字段的组合必须是唯一的,而不是每个单独的字段。MySQL支持复合唯一键约束: