百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> 怎么把复合主键改为单一主键
分享文章到:

怎么把复合主键改为单一主键

发布时间:09/01 来源:未知 浏览: 关键词:
所谓的复合主键 就是指你表的主键含有一个以上的字段组成,不使用无业务含义的自增id作为主键。

比方

create table test 
( 
   name varchar(19), 
   id number, 
   value varchar(10), 
   primary key (name,id) 
)

上面的name和id字段组合起来就是你test表的复合主键 ,它的显现是由于你的name字段大概会显现重名,所以要加上ID字段这样就可以包管你记载的独一性 ,一样状况下,主键的字段长度和字段数目要越少越好 。

这里就会有一个迷惑? 主键是独一的索引,那么为什么一个表可以创立多个主键呢?

其实“主键是独一的索引”这话有点歧义的。举个例子,我们在表中创立了一个ID字段,主动增长,并设为主键,这个是没有问题的,由于“主键是独一的索引”,ID主动增长包管了独一性,所以可以。

此时,我们再创立一个字段name,类型为varchar,也设定为主键,你会发明,在表的多行中你是可以填写雷同的name值的,这岂不是有违“主键是独一的索引”这句话么?

所以我才说“主键是独一的索引”是有歧义的。应当是“当表中只要一个主键时,它是独一的索引;当表中有多个主键时,称为复合主键,复合主键结合包管独一索引”。

为什么自增长ID已经可以作为独一标识的主键,为啥还需要复合主键呢。由于,并不是所有的表都要有ID这个字段,比方,我们建一个学生表,没有独一能标识学生的ID,如何办呢,学生的名字、年龄、班级都大概反复,没法使用单个字段来独一标识,这时,我们可以将多个字段设定为主键,构成复合主键,这多个字段结合标识独一性,其中,某几个主键字段值显现反复是没有问题的,只要不是有多笔记录的所有主键值完全一样,就不算反复。

如何把复合主键改为简单主键

一个表只能有一个主键:

基于一列的主键:

alter table test add constraint PK_TEST primary key(ename);

基于多列的结合主键:

alter table test add constraint PK_TEST primary key(ename,birthday);

以上就是如何把复合主键改为简单主键的具体内容,更多请关注百分百源码网其它相关文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有150人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板