怎么将数据库中的多个字段设为主键

怎么将数据库中的多个字段设为主键,第1张

以将两个字段设为主键为例:

第一步、首先打开sql server数据库,进行设计表,按住ctrl键,选中两个要设置为主键的字段,如下图所示:

第二步、选中之后,鼠标右键,点击设置主键,如下图所示:

第三步、可以看到两个字段都设置为主键了,如下图所示:

第四步、我们也可以使用代码来设置主键,alter table Table_1 add constraint pk_name primary key (id,name)设置Table_1表的id,name为主键,如下图所示:

第五步、点击执行之后,就成功设置两个字段为主键了,如下图所示:

数据库主键,指的是一个列或多列的组合,其值能唯一地标识表中的每一行,通过它可强制表的实体完整性。

主键可以用来表示一个精确定位的特定的行,如果没有主键,你就无法精准定位一条记录是否就是你要的相关行记录,这样就会导致更新或删除表中特定的行很困难。

而如果我们有主键来约束行记录的唯一性后,就可以利用主键来解决这个问题。

主键的作用:

1)保证实体的完整性

2)加快数据库的 *** 作速度。

3) 在表中添加新记录时,DBMS会自动检查新记录的主键值,不允许该值与其他记录的主键值重复。

4) DBMS自动按主键值的顺序显示表中的记录。如果没有定义主键,则按输入记录的顺序显示表中的记录。

扩展资料:

主键的必要性

在有些数据库中,虽然主键不是必需的,但最好为每个表都设置一个主键,不管是单主键还是复合主键。它存在代表着表结构的完整性,表的记录必须得有唯一区分的字段,主键主要是用于其他表的外键关联,以及本记录的修改与删除。

主键的无意义性

在开发过程中,可能会看到将一些表使用有意义的字段表示主键,例如“用户登录信息表”将“登录名”(英文名)作为主键,“订单表”中将“订单编号”作为主键,如此设计主键一般都是没什么问题,因为将这些主键基本不具有“意义更改”的可能性。

但是,也有一些例外的情况,例如“订单表”需要支持需求“订单可以作废,并重新生成订单,而且订单号要保持原订单号一致”,那将“订单编号”作为主键就满足不了要求了。因此读者在使用具有实际意义的字段作为主键时,需要考虑是否存在这种可能性。

参考资料:百度百科-数据库主键

1.

首先删除主键,

然后重新创建主键,

重新创建主键的时候,

需要说明本主键是使用

非聚集索引

primary

key

nonclustered

(

sno

)

2.

a:

pad_index

=

{

on

|

off

}

指定索引填充。默认值为

off。

on

fillfactor

指定的可用空间百分比应用于索引的中间级页。

off

或不指定

fillfactor

考虑到中间级页上的键集,将中间级页填充到接近其容量的程度,以留出足够的空间,使之至少能够容纳索引的最大的一行。

b:

fillfactor

=fillfactor

指定一个百分比,指示在创建或重新生成索引期间,数据库引擎对各索引页的叶级填充的程度。fillfactor

必须为介于

1

100

之间的整数值。默认值为

0。如果

fillfactor

100

0,则数据库引擎将创建完全填充叶级页的索引。

c:

ignore_dup_key

=

{

on

|

off

}

指定在插入 *** 作尝试向唯一索引插入重复键值时的错误响应。ignore_dup_key

选项仅适用于创建或重新生成索引后发生的插入 *** 作。当执行

create

index、alter

index

update

时,该选项无效。默认值为

off。

on

向唯一索引插入重复键值时将出现警告消息。只有违反唯一性约束的行才会失败。

off

向唯一索引插入重复键值时将出现错误消息。整个

insert

*** 作将被回滚。

d:

statistics_norecompute

=

{

on

|

off}

指定是否重新计算分发统计信息。默认值为

off。

on

不会自动重新计算过时的统计信息。

off

启用统计信息自动更新功能。

若要恢复统计信息自动更新,请将

statistics_norecompute

设置为

off,或执行

update

statistics

但不包含

norecompute

子句。

e:

on

[primary]

是指

索引创建在

primary

这个文件组上。

3、

以全国的身份z为例子:

对于

身份z号码,

有个

“唯一”

的索引

而对于

姓名,

有个

“不唯一”

的索引。

“不唯一”

的索引

虽然不能定位到唯一的某一行,

但是可以缩小范围。定位到某些行。

4.

聚集索引

clustered

创建索引时,键值的逻辑顺序决定表中对应行的物理顺序。聚集索引的底层(或称叶级别)包含该表的实际数据行。一个表或视图只允许同时有一个聚集索引。


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

原文地址: http://outofmemory.cn/sjk/6704563.html

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

发表评论

登录后才能评论

评论列表(0条)

保存