MySQL双列唯一键[重复]

问题描述 投票:1回答:2

这个问题在这里已有答案:

我知道我可以制作两列唯一键,但这并不是我想要的。

我希望那例如,如果col1='1', col2='2'那么col1='1', col2='2'不能有另一行,但完全有可能做到以下几点:

+--------+--------+
|  col1  |  col2  |
+--------+--------+
|    1   |    1   |
|    1   |    2   |
|    2   |    1   |
|    2   |    2   |
+--------+--------+

虽然这是不可能的:

+--------+--------+
|  col1  |  col2  |
+--------+--------+
|    1   |    1   |
|    1   |    1   |
+--------+--------+

制作两个唯一键不是一个选项,因为在col1='1', col2='1'col1='1', col2='2' col1是相同的,如果两者都是唯一键则不允许。

mysql database key unique-key
2个回答
4
投票

你需要composite unique index

ALTER TABLE tablename ADD UNIQUE KEY `uidx` (`col1`, `col2`);

1
投票

您只需要在两列col1col2之间声明一个唯一索引:

CREATE TABLE Table1
(
  `col1` int, 
  `col2` int,
   UNIQUE `unique_index`(`col1`, `col2`)
);

如果您尝试将1, 1插入col1和col2,您将收到以下错误:

Duplicate entry '1-1' for key 'unique_index'

你可以自己尝试qazxsw poi。

© www.soinside.com 2019 - 2024. All rights reserved.