MySQL联合主键

2014年9月13日 · 45 字 · 1 分钟

单字段主键

MySQL单字段主键相信大家都熟悉了。就是以一个字段主要数据行的主键,比如下面这个表

create table `user`(
user_id int(11) auto_increment,
username varchar(24),
password char(32),
primary key(user_id)
);

user_id作为单字段主键,说明任何用户的user_id都不能相同,一个user_id即标识一个用户。

多字段联合主键

再看这个表

create table `user`(
username varchar(24),
password char(32),
email varchar(40),
primary key(username,email)
);

这里使用username,email作为联合主键,为了标识一个用户,只有在username和email共同存在,且不同时才能标识。

例子

username	password	email
zhangsan	111111	zhangsan@qq.com
zhangsan	111111	lisi@qq.com
lisi	111111	zhangsan@qq.com

这三条记录均为合法记录,多字段联合主键的核心就是(所有字段才能唯一确定一条记录,就像上面的username,email)。