云数据库中复合主键最多包含多少个字段

云数据库中复合主键最多包含多少个字段,第1张

2个或者2个以上。一个表里面可以同时设置多个字段主键,这种主键称为复合主键;有些表里面不需要ID作为主键,比如用户和角色形成的关系表,两个表是多对多的关系,那么就可以将用户ID和角色ID共同设置为复合主键;

复合主键在查询时并没有单一主键方便,而且形成的主键索引也是多个字段一起才能起作用,所以也可以另外增加一个ID字段做成单一主键;

(即多个字段同时作为主键)主键是数据库表的一个重要属性,建立主键可以避免表中存在完全相同的记录,也就是说主键在一张表中的记录值是唯一的。

建立主键有两种方法:一种是在数据库提供的GUI环境中建立,另一种是通过SQL语句执行建立,下面分别介绍。

1.在数据库提供的GUI环境中建立(以SQL7为例)。

输入表信息后按Ctrl键同时选中多行,然后点上面的主键按钮就行了。

2.通过SQL语句执行建立。又分两种,一是在建表语句中直接写,二是建表之后更改表结构。

在建表语句中直接写:

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

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

字段名3…………

字段名N………… )

建表之后更改表结构:

CREATE TABLE 表名 (字段名1 Int Not Null,

字段名2 nvarchar(13) Not Null

字段名3…………

字段名N…………)

GO

ALTER TABLE 表名 WITH NOCHECK ADD

CONSTRAINT [PK_表名] PRIMARY KEY NONCLUSTERED

(

[字段名1],

[字段名2]

)

GO

例:

CREATE TABLE Student

(Son CHAR(12) PRIMARY KEY,

CREATE TABLE Course

(Con CHAR(4),

PRIMARY KEY (Con),

)

CREATE TABLE SC

(Sno CHAR(12),

Con CHAR(4),

PRIMARY KEY(Sno,Con),

FOREIGN KEY(Sno)REFERENCES Student(Sno),

FOREIGN KEY(Cno)REFERENCES Course(Cno))

如果项目比较小,鉴于userid的全局唯一性,是可以做主键的,但对于大型项目,由于表关系复杂,用有意义的具有可变性的字段作为主键是不合适的,建议使用无意义的id列作为主键,希望我的回答对你有所帮助,如果可以,不妨实践一下,会有你自己的体会。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存