有没有办法让整个MySQL行独一无二

Ras*_*mus 10 mysql unique

我在MySQL中有一个包含30列和数千个条目的表.
有没有办法让每一行都是唯一的,这意味着如果一行已经存在,我就不能再次进入该行了.

我不能在这里使用主键或唯一键,因为每个列都可以重复.
我希望这行是唯一的.例如: - 有一个表格

columns->name,age,height,weight.
Run Code Online (Sandbox Code Playgroud)

在这一列中,我不能使任何一列或两列唯一,但我不应该有两个具有所有相同数据的条目.

Rya*_*oss 21

您可以创建一个包含表中所有列的唯一索引

ALTER TABLE buyers ADD UNIQUE idx_row_unique(first_name,last_name,...);
Run Code Online (Sandbox Code Playgroud)

这样,您可以保留唯一的AUTO INCREMENT主键以进行连接,同时仍然确保表中的所有数据都是唯一的.


小智 11

您需要一个复合主键.

复合主键告诉MySQL您希望主键是字段组合.

更多信息: 为什么使用多列作为主键(复合主键)


Max*_*sky 5

您可以UNIQUE key在所有列上创建,而不是在每列上创建单独的唯一键。这意味着这些值的组合将是独一无二的——正是您所需要的。但是请注意,如果任何列允许空值,如果该列包含null值,它将被视为唯一的,即使另一行包含相同的值,null对于相同的值。