This question already has answers here:
How do I specify unique constraint for multiple columns in MySQL?

(14 个回答)


3年前关闭。




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

我希望例如如果 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 是相同的,如果两者都是唯一键,则不允许这样做。

最佳答案

你需要 composite unique index

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

关于MySQL 两列唯一键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47942621/

10-11 18:19