在MySQL中,是否可以在一行上有UNIQUE约束?

时间:2011-02-09 16:05:39

标签: mysql unique

看来MySQL的UNIQUE约束是逐列的,我正在寻找一种方法来确保行是逐行的UNIQUE;猜测答案是通过连接我希望为UNIQUE的每行的列来创建哈希,然后在存储该行的哈希的列上使用UNIQUE。此外,除非我创建控件,行本身将始终是UNIQUE,因为行的ID是SURROGATE_KEY;这意味着它是一个整数顺序增长+1的最后一行整数的ID。

2 个答案:

答案 0 :(得分:4)

您可以创建多列UNIQUE索引。

答案 1 :(得分:3)

确保行完全唯一的主要方法是在每列上使用UNIQUE约束或在每列上创建一个类似的UNIQUE索引。如果您可以允许两列接受相同的输入,但您需要唯一地区分它们,那么您没有理由需要除主键(基本上是ID列)之外的任何内容。您可以做的另一件事是切换到一个列存储数据库,例如InfiniDB,它有一个MySQL前端或MonetDB,两者都是开源替代品。