为了账号安全,请及时绑定邮箱和手机立即绑定

主键唯一 和 UNIQUE KEY的问题

我在表中建了两个主键为什么没有报错呢,老师不是说一个表中只能插入一个主键吗,但是我插入了两个主键也没有提示我报错,这是为什么呢

正在回答

2 回答

PRIMARY KEY 主键  同一表只可以存在一个主键,该列作为每组数据的唯一标识

UNIQUE KEY 唯一约束  同一个表可以存在多个,在实际开发中,比如说username不可以重复,可以定义为唯一约束

0 回复 有任何疑惑可以回复我~
#1

qq_下个瞬间_03247970 提问者

同学你好,我知道primary key是主键同时也具有唯一性,我也知道unique key具有的唯一性,但我不明白的是为什么我创建的表主键是为多个也可以创建,代码如下: CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_name` varchar(20) NOT NULL, `user_pwd` varchar(20) NOT NULL, PRIMARY KEY (`id`,`user_name`,`user_pwd`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2017-07-16 回复 有任何疑惑可以回复我~
#2

千散 回复 qq_下个瞬间_03247970 提问者

我查了下,你的写法应该是组合主键 组合主键 列不能唯一区分一个表里的记录时,可以考虑多个列组合起来达到区分表记录的唯一性,形式  ①创建时:create table sc (  studentno int,  courseid int,  score int,  primary key (studentno,courseid) );  ②修改时:alter table tb_name add primary key (字段1,字段2,字段3);
2017-07-16 回复 有任何疑惑可以回复我~
#3

qq_下个瞬间_03247970 提问者 回复 千散

明白了,Thank you
2017-07-16 回复 有任何疑惑可以回复我~
#4

Setihex 回复 千散

学习了
2017-07-22 回复 有任何疑惑可以回复我~
查看1条回复

http://img1.sycdn.imooc.com//596afc930001abbf05650111.jpg

主键只能定义一个,UNIQUE KEY才可以定义多个,你看我截图,定义两个主键时会报错,所以应该是你命令敲错了或者是把UNIQUE KEY误解为主键了吧..

0 回复 有任何疑惑可以回复我~
#1

qq_下个瞬间_03247970 提问者

这位同学,你好,这是我的代码,我可以同时创建三个主键都是可以的你可以去试一下 CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_name` varchar(20) NOT NULL, `user_pwd` varchar(20) NOT NULL, PRIMARY KEY (`id`,`user_name`,`user_pwd`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2017-07-16 回复 有任何疑惑可以回复我~
#2

qq_下个瞬间_03247970 提问者

你可以用show columns的方法把建的表属性打出来看看,是不是可以设置多个主键呢
2017-07-16 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
与MySQL的零距离接触
  • 参与学习       396886    人
  • 解答问题       3353    个

本课程涵盖全部MySQL数据库的基础,学习MySQL数据库的基础知识

进入课程

主键唯一 和 UNIQUE KEY的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信