这个问题在这里已有答案:
我知道我可以制作两列唯一键,但这并不是我想要的。
我希望那例如,如果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`);
您只需要在两列col1
和col2
之间声明一个唯一索引:
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。