sql表怎么有两个主键呢

一个数据库创建语句中有如下:

PRIMARY KEY (`classid`),
KEY `bclassid` (`bclassid`)

怎么会有两个KEY呢?

我能否再增加一个,比如 KEY `mclassid` (`mclassid`)

这里的PRIMARY KEY是主键,KEY不是主键,就是普通索引。 再增加一个也是可以的。

mysql的key和index有点相近是索引约束,单独的key和其它关键词结合的key(primary key)实际表示的意义是不同。

扩展资料

primary key和key的区别:

primary key是主键,一般为自动增长并且是非空、int类型的,主要用来保证数据的唯一性;

Key是索引约束,对表中字段进行约束索引的,都是通过primary foreign unique等创建的。

举例说明:

CREATE TABLE wh_logrecord (

logrecord_id int(11) NOT NULL auto_increment,

user_name varchar(100) default NULL,

operation_time datetime default NULL,

logrecord_operation varchar(100) default NULL,

PRIMARY KEY (logrecord_id),

KEY wh_logrecord_user_name (user_name)

)

解析:KEY wh_logrecord_user_name (user_name) ,本表的user_name字段与wh_logrecord_user_name表user_name字段建立外键,括号外是建立外键的对应表,括号内是对应字段。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-04-12

一个表是不能抄有两个主键的。但是可以有两个字段组合袭成一个主键,这就是为什么有时候表里会有两个字段都有主键的标志,那是因为他们组合成了一个主键了。

SQL语言的组成:

1、一个SQL数据库是表(Table)的集合,它由一个或多个SQL模式定义。

2、一个SQL表由行集构成,一行是列的序列(集合),每列与行对应一个数据项。

3、一个表或者是一个基本表或者是一个视图。基本表是实际存储在数据库的表,而视图是由若干基本表或其他视图构成的表的定义。

扩展资料:

基本表的定义及变更:

本身独立存在的表称为基本表,在SQL语言中一个关系唯一对应一个基本表。基本表的定义指建立基本关系模式,而变更则是指对数据库中已存在的基本表进行删除与修改。

数据查询:

SQL是一种查询功能很强的语言,只要是数据库存在的数据,总能通过适当的方法将它从数据库中查找出来。SQL中的查询语句只有一个:SELECT,它可与其它语句配合完成所有的查询功能。SELECT语句的完整语法,可以有6个子句。

参考资料:

百度百科-SQL数据库

本回答被网友采纳
第2个回答  推荐于2017-09-26

一个数据库表只能有一个主键,不允许两个主键。但是允许两个字段联合起来设置为主键,这叫联合主键。

创建主键的方式如下:

ALTER TABLE 选课表 
ADD CONSTRAINT pk_选课表 PRIMARY KEY(学号);

创建联合主键的方式如下:

ALTER TABLE 选课表 
ADD CONSTRAINT pk_选课表 PRIMARY KEY(学号, 课程编号);

第3个回答  推荐于2017-09-25
这叫联合主键
当一个字段无法确定唯一性的时候,需要其他字段来一起形成唯一性。就是说用来组成唯一性的字段如果有多个就是联合主键。

你再加几个都可以。只要跟你的需求符合本回答被提问者采纳
第4个回答  2013-08-28
所有字段都是主键都没问题
主键的个数是根据业务的需要来设定的
没有固定的个数,满足需求,一个就够,不同的业务表,根据业务需要设定。追问

谢谢回复!不过看样子你也是个门外汉!

追答

是啊,我是做了十几年SQLserver的门外汉

相似回答