精华内容
下载资源
问答
  • 在绿色工具里,可以多个字段打上主键的标识“锁”,但这并不表示表拥有了多个主键,而是说这几个字段共同构成了主键。当然,他们之间也是有次序的。查看次序可以使用show index from table。会看到Key_Name...

    在绿色工具里,可以对多个字段打上主键的标识“锁”,但这并不表示表拥有了多个主键,而是说这几个字段共同构成了主键。当然,他们之间也是有次序的。查看次序可以使用show index from table。会看到Key_Name中有多个Primary,而Seq_in_index便是指各字段在主键中的优先顺序,当然了,对多个字段构成的索引也是一样的道理。

    展开全文
  • mysql多主键

    万次阅读 2019-07-05 17:40:28
    google一个结果得到说 主键 就是unique 和 not null的结合,但经过试验之后发现,在细节上,二者是有差异的。 假设这样一个情况: 一个用户表,用户ID和用户名都是唯一的。 也就是说,一个ID只能出现一次,...

    mysql中的多主键

    2013年11月10日 23:57:54 DevonLiu02 阅读数 2274

    最近在学习mysql的时候发现关于多主键的一个问题。
    google中的一个结果得到说 主键 就是unique 和 not null的结合,但经过试验之后发现,在细节上,二者是有差异的。

    假设这样一个情况:
    一个用户表,用户ID和用户名都是唯一的。
    也就是说,一个ID只能出现一次,用户名也是只能出现一次,那么这个时候可能的建表语句就是这样:

     

     
    1. CREATE TABLE `user` (

    2. `userid` SMALLINT UNSIGNED AUTO_INCREMENT,

    3. `username` CHAR(16) NOT NULL,

    4. `password` char(40) NOT NULL,

    5. PRIMARY KEY (`userid`, `username`)

    6. );

    但是实际上,这样建出来的表不能实现我们的需求
    插入以下数据将会是正常的
      

    idusername
    1mike
    2mike
    2alice


     




    数据中可以看到, 表中同时存在了2个同样的id和2个同样的username 这并不是我们想要的
    这种主键称为 联合主键, 联合主键就是由1个以上的字段构成的唯一标识.

    这种主键通常用在多对多的关系表中, 例如

    一位老师可以教多门课程, 一门课程可以由多个老师来授课. 那么这种情况就可以考虑使用联合主键,  设置 PRIMARY KEY (course_id, teach_id) 这样就可以保证数据不会冗余。在这种情况下插入相同的(course_id, teach_id) 将会出错

     

    course_idteach_id
    11
    12
    21
    11 (错误)

     

       





    那么回到一开始的问题,要怎样确保userid和username都唯一?

    建表语句如下

     

     
    1. CREATE TABLE `user` (

    2. `userid` SMALLINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,

    3. `username` CHAR(16) NOT NULL,

    4. `password` char(40) NOT NULL,

    5. UNIQUE(`username`)

    6. );



    使用 unique语句来确保username的唯一性, 这样同时也保证了userid唯一性
    小结: mysql中没有多主键,只有联合主键。也就是说不能够同时存在多个独立的primary key,但可以有多个unique.

    展开全文
  • SQL 一个可不可以没有主键

    千次阅读 2019-03-14 13:53:00
    主键的作用: 1)保证实体的完整性; 2)加快数据库的操作速度 3)在表添加新记录时,数据库会自动检查新记录的主键值,不允许该值...2.数据查询效率(主键可以提高查询效率,当然合理的索引替代也可以) 这两...
    主键的作用:
    1)保证实体的完整性;
    2)加快数据库的操作速度
    3)在表中添加新记录时,数据库会自动检查新记录的主键值,不允许该值与其他记录的主键值重复。
    4) 数据库自动按主键值的顺序显示表中的记录。如果没有定义主键,则按输入记录的顺序显示表中的记录。

    主键不是非要不可,可以从:

    1.是否满足业务要求

    2.数据查询效率(主键可以提高查询效率,当然合理的索引替代也可以)

    这两个角度权衡是否需要主键。

    这要看表的功能. 利用来存储大量数据,并需要经常查询的,建立主键可以加快查询效率从而降低服务器的负担. 如无此需求,建立反而多耗用服务器资源. 

    设置不设置主键主要看业务或者需求来说
    如果你就是简单的对单表操作的话,实在没有必要。
    对多张没有关联的表操作的话,不设置也没有什么影响
    主键只是说对一种表和表关系的关联而已,还有就是在建主键的时候会自动添加个索引,某些情况下可以增加查询速度

    原文出自:https://www.cnblogs.com/yangwujun/p/7132623.html

    转载于:https://www.cnblogs.com/cfss/p/10529848.html

    展开全文
  • 在我们开发的过程,总感觉一张表就一个主键。但是事情往往没有我们想象的那么简单,一张表其实也是可以多个主键。 如上图所示,其实说多个主键也不对,可以说是复合主键。意思为 这2个字段都不是唯一的,2个...

    在我们开发的过程中,总感觉一张表就一个主键。但是事情往往没有我们想象的那么简单,一张表其实也是可以有多个主键。
    在这里插入图片描述
    如上图所示,其实说多个主键也不对,可以说是复合主键。
    如下添加数据:
    在这里插入图片描述
    提示违反唯一约束,意思说明两个主键字段不能同时一样。

    参考网址
    http://www.sohu.com/a/339355966_120047065
    https://www.cnblogs.com/CNty/p/10941398.html
    https://www.jianshu.com/p/8625b3b639b3

    这辈子坚持与不坚持都不可怕,怕的是独自走在坚持的道路上!!!

    欢迎加入技术群聊
    在这里插入图片描述

    展开全文
  • SQL中主键外键关系

    千次阅读 热门讨论 2013-07-21 20:08:06
    在学过数据库以后对于约束的概念就不是太陌生了,即:约束(Constraint)是Microsoft SQL Server 提供的自动保持... 主键和外键是把多个表组织为一个有效的关系数据库的粘合剂。主键和外键的设计对物理数据库的性能
  • 现在有两表table1,table2,两表都包含有a、b、c三字段,现在把表table1的a、b、c设为主键,那么两表怎么建立关系, alter table table2 add constraint fk_table1_table2 foreign key (a) references table1 (a...
  • 今天用EF做更新操作时,抛出了System.InvalidOperationException:“操作失败: 无法更改关系,因为一个或多个外键属性不可以为 null。对关系作出更改后,会将相关的外键属性设置为 null 值。如果外键不支持 null 值,...
  • 我建了两表,parent的Pid与child的Cid是多关系,Child的cid与otherid只组合主键.如下 parent表 字段名 类型 长度 Pid (PK) Character 10 Name Character 10 Child表 字段名 类型 长度
  • 数据库主键与外键的关系,通俗易懂

    万次阅读 多人点赞 2017-12-16 16:13:08
    关系型数据库的一条记录有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键比如学生表(学号,姓名,性别,班级)其中每个学生的学号是唯一的,学号就是一个主键课程表...
  • SELECT TF_SCHOOL_DORMITORY_INFO.*, tsi.STAFF_NAME “ceoName”, ts_staff_info.STAFF_NAME AS “houseMasterName” FROM ( SELECT * FROM ts_staff_info ) tsi right join TF_SCHOOL_DORMITORY_INFO ON tsi.STAFF...
  • mysql 中主键和索引的关系和说明

    千次阅读 2016-04-24 17:26:12
     联合主键:当使用列已经不能唯一标示行的时候,就要采用列唯一标识行,就是联合主键。   2.索引:索引的作用就是提高数据的检索速度,分为单一索引和联合索引:   单一索引:只是用某列数据...
  • 一张表可以有多少个主键

    万次阅读 2018-10-24 09:47:39
    今天学习sql语句的时候看到一张表建立的时候有两个主键,印象中一张表中主键只能有一个, 一开始理解有一个可能是外键,但是外键也不长这样。 经过查阅资料,发现其实是联合外键。 总的来说,一张表的外键只能...
  • Hibernate配置多个外键做联合主键

    千次阅读 2018-06-06 15:16:58
    项目的vipInfo--cart---cartItem 三个表之间的关系如下vipInfo与cart的关系是一对一所以将它...因为每个用户都有一个购物车,但是购物车与购物车内的商品关系是m:n,所以这时候需要新建一个联系表cartItem(cartI...
  • SQL关系-主键,外键

    千次阅读 2013-12-18 08:56:54
    一、定义: 主键--唯一标识一条记录,不能有重复的,不允许为空 外键--表的外键是另一表的主键,外键可以有重复的,可以是空值 ...外键--一个可以多个外键 四、SQL中主键和外键的关系及运用 1.
  • 文章目录关系的特性数学定义的关系关系的特性关系不可重复候选码/候选键一个关系中可以多个候选码/候选键主码/主键主属性与非主属性外码/外键总结:什么是关系 关系的特性 列的同质性,每一列的分量来自与同一个...
  • 在这种关系,我们可以确定的是,学生和课程关系虽然是,但一个确定的学生id和一个确定的课程id在关系只能存在一个。如下图所示:,业务逻辑就是一个学生只能有当前课程的一个分数。 t_stu...
  • 外键必须是另一个表的主键

    千次阅读 2019-03-01 14:48:49
    不一定是主键,但必须是唯一性索引。 主键约束和唯一性约束都是唯一性索引。 FOREIGN KEY 约束 ...在外键引用,当一个表的列被引用作为另一个表的主键值的列时,就在两表之间创建了链接。这...
  • 外键必须是另一个表的主键吗 ?

    千次阅读 2021-05-07 14:13:38
    比如学生表在设计的时候一般可以用学号作为主键,也可设计一个ID字段,字段数据库自动生成且唯一。那么对于班级,一个班级对应多个学生,这个时候对于班级表和学生表之间的外键就可以用学生表的ID做外键。 如下所...
  • 刚接触关系型数据库的同学,会听过主键和外键的概念。...给你一个主键的值,你就可以找到一条确定的记录。如:  学生表:学号,姓名,性别,课程。这里学号就是主键。给你一个学号,就可以找到一条学生记...
  • 但是可以有两个字段组合成一个主键,这就是为什么有时候表里为什么会有两个字段都有主键的标志,那是因为他们组合成了一个主键了。 我们可以先删除了原来的主键再用TSQL建alter table tablename add constraint pk_...
  • 主键与索引,主键与外键的关系

    千次阅读 2013-01-03 17:54:35
     所谓主键就是能够唯一标识表某一行的属性属性组,一个表只能有一个主键,但可以多个候选索引。因为主键可以唯一标识某一行记录,所以可以确保执行数据更新、删除的时候不会出现张冠李戴的错误。主键除了上述...
  • 关系数据库表主键和外键

    千次阅读 2013-08-03 15:31:20
    关系型数据库的一条记录有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键  比如  学生表(学号,姓名,性别,班级)  其中每个学生的学号是唯一的,学号就是一个...
  • 主键和外键是把多个表组织为一个有效的关系数据库的粘合剂。主键和外键的设计对物理数据库的性能和可用性都有着决定性的影响。必须将数据库模式从理论上的逻辑设计转换为实际的物理设计。而主键和外键的结构是这个...
  • 数据库主键

    千次阅读 2013-11-16 11:13:20
    在数据库表能够唯一识别每一条记录的一个字段或者多个字段的组合,称之为主键(Primary Key)。主键的主要作用将表记录的数据和其他表的数据进行关联。作为主键的需要满足如下的条件: 主键值所在的字段不...
  • 情况:如果中间表仅仅是做关联用的,它里面仅有2外键做联合主键,则使用ManyToMany(不用写中间表的Model,只需要写出两张主表的model即可) 学生表 @Entity @Table(name = "T_STUDENT") @Sequence...
  • SQL 主键与外键的关系

    千次阅读 2018-04-25 10:15:27
    (1)插入非空值时,如果主键没有这值,则不能插入。(2)更新时,不能改为主键没有的值。(3)删除主键表记录时,你可以在建外键时选定外键记录一起级联删除还是拒绝删除。(4)更新主键记录时,同样有级联更新和...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 196,813
精华内容 78,725
关键字:

关系中的主键可以由一个或多个