MySQL两列唯一键
我知道我可以使两列成为唯一的键,但这并不是我想要的 例如,如果MySQL两列唯一键,mysql,database,key,unique-key,Mysql,Database,Key,Unique Key,我知道我可以使两列成为唯一的键,但这并不是我想要的 例如,如果col1='1',col2='2',则不能有另一行col1='1',col2='2',但完全可以执行以下操作: +--------+--------+ | col1 | col2 | +--------+--------+ | 1 | 1 | | 1 | 2 | | 2 | 1 | | 2 | 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
中是相同的,如果两个键都是唯一键,这是不允许的。您只需要在两列col1
和col2
之间声明一个唯一索引:
CREATE TABLE Table1
(
`col1` int,
`col2` int,
UNIQUE `unique_index`(`col1`, `col2`)
);
如果尝试在col1和col2中插入1,1
,将出现以下错误:
Duplicate entry '1-1' for key 'unique_index'
您可以自己尝试。您需要
复合唯一索引
ALTER TABLE tablename ADD UNIQUE KEY `uidx` (`col1`, `col2`);
将两列连接到第三列并使其成为唯一键怎么样?您可以对多个键设置唯一约束,例如,
ALTER TABLE yourtable ADD unique
unique\u index(
col1,
col2)
您需要一个两字段的唯一键,正如@GiorgosBetsos所说的