我正在处理数据库中的一个表,该表的主键字段为 numeric int 值。
CREATE TABLE 'table' (
'primary_key_field' INT NOT NULL
'other_fields' ....
PRIMARY KEY ( 'primary_key_field' )
)
当我插入一个新元素时,id 值设置为自动递增。
我的问题是,当我删除元素并插入新元素时,id 值的顺序不再连续,而是有漏洞。
例如:如果我删除键字段值为 3 和 6 的元素,则值将为:
1,2,4,5,7,..等等..
有没有办法让元素保持正确的顺序?
例如:这样当我删除字段值为 3 的表元素时,字段值为 4 的元素会自动将其值更新为 3 等等所有其他元素?
在此先感谢您的帮助!
最佳答案
除非您自己编写查询,否则没有主流的 RBDMS 支持它。
- 自动编号/标识列应该没有任何意义或外部值
- 外键需要更新
- 历史表跟踪原始值:在您的示例中删除新的 id 3 存在冲突
如果您需要一个连续的数字来读取,那么您需要 ROW_NUMBER 或 MySQL 等效项。
关于mysql - 如何在整个删除操作中保持表字段值连续增长?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7625903/