MySQL关于主键的一些问题

一、主键的概念

  表中每一行都应该有可以唯一标识自己的一列(或一组列)。一个顾客可以使用顾客编号列,而订单可以使用订单ID,雇员可以使用雇员ID 或 雇员社会保险号。
  主键(primary key) 一列(或一组列)能够唯一区分表中的每一行。

二、主键是必须的吗

  不是必须的,但是最好每个表有一个主键,以便于以后数据操纵和管理。

【原因】:

  • 加主键的目的,是为了保证数据完整性和唯一性。如果你这个表有相应的外键表,那外键列值必须等于主键值,这是最基本的一对多关系。

  • 设置了主键后一般会创建聚集索引,可以提高查询效率,但这不是主键的基本目的,不用主键,同样可以创建聚集索引,而且主键,也不一定非得创建聚集索引。

三、主键设置规范

  • 任何两行都不具有相同的主键值。

  • 每个行都必须具有一个主键值(主键列不允许NULL值)。

  • 不更新主键列的值。

  • 不重用主键列的值。

  在使用InnoDB存储引擎时,如果没有特别的需要,请永远使用一个与业务无关的自增字段作为主键。

猜你喜欢

转载自blog.csdn.net/daaikuaichuan/article/details/85239868