【发布时间】:2021-01-22 06:27:59
【问题描述】:
我有一张如下表:
CREATE TABLE `b` (
`b1` int(11) DEFAULT NULL,
`b2` int(11) DEFAULT NULL,
UNIQUE KEY `b1` (`b1`,`b2`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
这里,为 2 个字段提供了唯一表约束。但是,在 show create table 查询中,它就像 UNIQUE KEY b1 (b1,b2) 第一个字段 b1 充当唯一键,其中 b2被合并了。
我可以放弃b1 的约束,但不能放弃b2:
mysql> alter table b drop index b2;
ERROR 1091 (42000): Can't DROP 'b2'; check that column/key exists
mysql> alter table b drop index b1;
Query OK, 0 rows affected (0.41 sec)
Records: 0 Duplicates: 0 Warnings: 0
需要的答案:
- 为什么此唯一约束仅适用于一个字段(第一次提到的字段)?
- 唯一表约束的结构是这样的吗?
- 非常需要参考链接的任何附件
提前致谢
【问题讨论】:
标签: mysql constraints unique-constraint unique-key unique-index