数据库规定主键值不能重用的目的是什么?
一、数据库规定主键值不能重用的目的是什么
1.主键值可以重用。
2.在很多已有的系统中,比如各种开源网站、论坛,由于数据库在设计时,业务与主键值耦合了,这种情况下,重用主键值会让系统发生业务错误。比如某查询是以主键是否存在来判定查询结果,重用主键会造成误判。
3.对于自增主键,主键值也可以重用,但问题是,如何重用?你会发现这非常麻烦。
SQL Server 中的 “自动增长列”(标识列 / identity 列),既然是 “自动增长”,那当然是不能再 “减少” 的了,否则怎么能叫这个名字呢?好吧,说正经的,实现起来比较简单,只要记录当时该列中最大的值且加上一个步长(默认为1)就可以了,否则还得花费时间去搜索那个 “空隙”。尤其是在并发的情况下,比较容易保证新插入的记录中这一列的值是正确的。设置为 “标识列” 的缺点就是,这一列的值只能是整型。另外,只要这一列的值都是整型,那么对于计算机来说占用的存储空间都是一样的,并没有 “浪费资源”。
延伸阅读:
二、什么是数据库和数据库管理系统
数据库的应用非常广泛,举个例子,我们平时在浏览器上搜索内容,就要用到数据库去检索我们的关键字。以前我们可能会用数组、集合、文件等来存储数据,但是接下来我们就会面临一个问题,当存储的数据或内容过多的时候,我们如何去精准的找到我们需要的东西,这时候数据库管理系统就派上了用场。除此之外,数据库管理系统还能永久的储存我们的数据。
为了便于大家理解,这里先给大家讲解几个概念
DB数据库(database):存储数据的“仓库”。它保存了一系列有组织的数据。
DBMS数据库管理系统(Database Management System):数据库是通过DBMS创建和操作的容器。