数据库规定主键值不能重用的目的是啥
关系型数据库中并没有规定主键值不能重用,只要主键列中所有的值都是唯一且不为空的就可以了。我猜想题主说的可能是 SQL Server 中的 “自动增长列”(标识列 / identity 列)?既然是 “自动增长”,那当然是不能再 “减少” 的了,呵呵,否则怎么能叫这个名字呢?好吧,说正经的,我觉得应该是实现起来比较简单,只要记录当时该列中最大的值且加上一个步长(默认为1)就可以了,否则还得花费时间去搜索那个 “空隙”。尤其是在并发的情况下,比较容易保证新插入的记录中这一列的值是正确的。设置为 “标识列” 的缺点就是,这一列的值只能是整型。另外,只要这一列的值都是整型,那么对于计算机来说占用的存储空间都是一样的,并没有 “浪费资源”。
■网友
1.主键值可以重用。2.在很多已有的系统中,比如各种开源网站、论坛,由于数据库在设计时,业务与主键值耦合了,这种情况下,重用主键值会让系统发生业务错误。比如某查询是以主键是否存在来判定查询结果,重用主键会造成误判。3.对于自增主键,主键值也可以重用,但问题是,如何重用?你会发现这非常麻烦。
■网友
1、数据库没有规定主键不能重用。
【数据库规定主键值不能重用的目的是啥】 2、说主键不能重用,应该是业务场景规定。因为主键经常会写到其他表做关联,如果你主表删了从表没删,重用的时候又没检测从表是否存在的话,那么从表就会关联上新的数据,这就会出问题。然而主键一般是UUID或者自增的,想要重用也没那么容易啦。
推荐阅读
- 山西高校回应“学生体测替考被取消学位:按规定执行
- 英雄联盟盒子/大脚为啥要下线换肤功能?
- 考研数据库方向
- 哪个数据库,可以直接做数据透视图(navicat类的也可以)
- |2020年10月南京市查处违反中央八项规定精神问题60起
- 规定|公共场合故意损坏侮辱警旗将依法处罚
- kindle设备出租是否违反规定
- 怎样评价我国出台的规范即时通信工具公众信息服务的规定?
- 汽车驾驶|私家车报废规定又有新变化,看起来有利,却成为车主们的“噩梦”
- 哪里能获取美股月度成交金额的数据,找了好几个数据库都只有成交量
