回答

收藏

SQL 保存已删除行的 PRIMARY KEY

技术问答 技术问答 273 人阅读 | 0 人回复 | 2023-09-12

我有一个 AUTO INCREMENT PRIMARY KEY "student_id",一行插入表中。它得到 student_id 等于1I deleted this line和inserted new line。新行的 student_id 为2,不是1。为什么?如何改变?
$ A; R8 k$ f4 H1 P, ]/ S& p我试过了:
6 L% s' {# |6 _" P6 Y& _& ~ALTER TABLE students DROP PRIMARY KEY,ADD PRIMARY KEY (student_id);但是没有结果。
" d% K" k. N/ z$ a) u" b) |                                                               
# {9 M# q/ v% ~6 R& D" O    解决方案:                                                                + {: V- T) y1 `
                                                                这就是自动递增键的工作原理。每个自动增量操作都保证返回一个新的唯一值。数据库服务器中没有内置逻辑来试图确定某些值是否可以重用,因为它们的行已经被删除。) |- }: T- ]5 t- T: j
为什么不呢?这些键通常存储在其他表中(关系数据库管理系统的关系部分)。如果它们被重用,它们就会被破坏。
) D' G3 i' o  a9 |8 ]0 q5 x您可以使用下列命令重置下一个自动增值
* {& ?, h" ~$ GALTER TABLE table_name AUTO_INCREMENT = value;但是,如果你这样做,你可能会把事情搞得一团糟。在您获得有关自动递增值的 JOIN 操作经验前不要这样做。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则