通过与 Jira 对比,让您更全面了解 PingCode

  • 首页
  • 需求与产品管理
  • 项目管理
  • 测试与缺陷管理
  • 知识管理
  • 效能度量
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

        • 行业解决方案
          先进制造(即将上线)
        • 解决方案1
        • 解决方案2
  • Jira替代方案

25人以下免费

目录

数据库规定主键值不能重用的目的是什么

主键值可以重用。在很多已有的系统中,比如各种开源网站、论坛,由于数据库在设计时,业务与主键值耦合了,这种情况下,重用主键值会让系统发生业务错误。

一、数据库规定主键值不能重用的目的是什么

1.主键值可以重用。

2.在很多已有的系统中,比如各种开源网站、论坛,由于数据库在设计时,业务与主键值耦合了,这种情况下,重用主键值会让系统发生业务错误。比如某查询是以主键是否存在来判定查询结果,重用主键会造成误判。

3.对于自增主键,主键值也可以重用,但问题是,如何重用?你会发现这非常麻烦。

SQL Server 中的 “自动增长列”(标识列 / identity 列),既然是 “自动增长”,那当然是不能再 “减少” 的了,否则怎么能叫这个名字呢?好吧,说正经的,实现起来比较简单,只要记录当时该列中最大的值且加上一个步长(默认为1)就可以了,否则还得花费时间去搜索那个 “空隙”。尤其是在并发的情况下,比较容易保证新插入的记录中这一列的值是正确的。设置为 “标识列” 的缺点就是,这一列的值只能是整型。另外,只要这一列的值都是整型,那么对于计算机来说占用的存储空间都是一样的,并没有 “浪费资源”。

延伸阅读:

二、什么是数据库和数据库管理系统

数据库的应用非常广泛,举个例子,我们平时在浏览器上搜索内容,就要用到数据库去检索我们的关键字。以前我们可能会用数组、集合、文件等来存储数据,但是接下来我们就会面临一个问题,当存储的数据或内容过多的时候,我们如何去精准的找到我们需要的东西,这时候数据库管理系统就派上了用场。除此之外,数据库管理系统还能永久的储存我们的数据。

为了便于大家理解,这里先给大家讲解几个概念

DB数据库(database):存储数据的“仓库”。它保存了一系列有组织的数据。

DBMS数据库管理系统(Database Management System):数据库是通过DBMS创建和操作的容器。

相关文章