【发布时间】:2011-02-09 16:05:38
【问题描述】:
似乎 MySQL 的 UNIQUE 约束是逐列的,我正在寻找一种方法来确保该行在逐行的基础上是唯一的;猜测答案是通过连接每行的列来创建一个散列,然后我想是唯一的,但是在存储该行的散列的列上是唯一的。此外,除非我创建控件,否则行本身将始终是唯一的,因为行的 ID 是 SURROGATE_KEY;这意味着它是一个整数,按最后一行整数的 ID +1 递增。
【问题讨论】:
-
如果有大量字段,性能会很差,但您可以添加一个包含所有字段的唯一键。但是,您必须排除 ID 字段,因为这会破坏您想要的唯一性。
-
我不确定我是否理解这个问题——你想确保行是唯一的而不使用唯一的列吗?但是由于主键的存在,不是所有表的行都是唯一的吗?
-
@ryebr3ad:唯一的主键只有在键是自然的情况下才有效,如果不是,它是人工生成的顺序整数。