mysql表中一个表中可以有多个主键吗

mysql表中一个表中可以有多个主键吗,第1张

数据库中的每张表只能有一个主键,不可能有多个主键。

主键的作用是保证数据的唯一性和完整性,同时通过主键检索表能够增加检索速度。

所谓的一张表多个主键,我们称之为联合主键。

注:联合主键:就是用多个字段一起作为一张表的主键。

创建联合主键:

1、GUI中同时选中多列,点击设置为主键。

2、sql语句将多列设置为主键:

方法一:在建表时就写出

Create Table 表名 (字段名1 Int Not Null,

                   字段名2 nvarchar(13) Not Null Primary Key (字段名1, 字段名2),

                    字段名3…………

                    字段名N………… )

方法二:在建表后更改

ALTER TABLE 表名 WITH NOCHECK ADD 

CONSTRAINT [PK_表名] PRIMARY KEY  NONCLUSTERED 

(

  [字段名1],

  [字段名2]

)

联合主键:把两个列看成是一个整体,这个整体是不为空,唯一,不重复

1.创建表的同时创建联合主键

语法1

语法2

2.针对已经存在表,添加联合主键

复合主键就是指你表的主键含有一个以上的字段组成 。 例如; create table test ( name varchar(19), id number, value varchar(10), primary key (id,name) ) 上面的id和name字段组合起来就是你test表的复合主键 (若其一为单索引字段时,左边的id才会有索引) 它的出现是因为你的name字段可能会出现重名,所以要加上ID字段这样就可以保证你记录的唯一性 一般情况下,主键的字段长度和字段数目要越少越好

联合主键,顾名思义就是多个主键联合形成一个主键组合,体现在联合。 (主键原则上是唯一的,别被唯一值所困扰。) 索引可以极大的提高数据的查询速度,但是会降低插入、删除、更新表的速度,因为在执行这些写 *** 作时,还要 *** 作索引文件。 简单的例子 主键A跟主键B组成联合主键 主键A跟主键B的数据可以完全相同(困扰吧,没关系),联合就在于主键A跟主键B形成的联合主键是唯一的。

联合主键体现在多个表上,复合主键体现在一个表中的多个字段

复合主键:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6141621.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-16
下一篇 2023-03-16

发表评论

登录后才能评论

评论列表(0条)

保存