假设有如下建表语句:
CREATE TABLE user
(
id
varchar(32) NOT NULL COMMENT ‘id’,
name
varchar(100) NOT NULL COMMENT ‘姓名’,
gender
varchar(200) NOT NULL COMMENT ‘性别’,
age
int NOT NULL COMMENT ‘年龄’,
updateTime
datetime DEFAULT NULL,
PRIMARY KEY (id
) USING BTREE,
UNIQUE KEY user_info
(name
,gender
,age
) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
之后向表中添加如下字段:
zhangsan,male,27;
lisi,male,27;
lisi,female,27;
lisi,female,25;
结果如下:
但是当再次添加同样的(name,gender,age)组时会显示重复:
因此,UNIQUE KEY user_info
(name
,gender
,age
) 的作用是令name、gender、age三个字段的值至少有一个不同