gpt4 book ai didi

sql - 如何在sql中关闭自动编号?

转载 作者:行者123 更新时间:2023-12-04 06:00:01 24 4
gpt4 key购买 nike

我有一个进退两难的境地。我有一个名为 ID 的列的表,它是主键。它是自动递增的,所以 1、2、3 等等,表格是 1-8。

一位前程序员删除了第 7 行,所以现在 6 和 8 之间存在差距。我需要将 8 的值更改为 7。

我尝试了几件事:

  • 我无法编辑 ID 8,因为它是一个身份列
  • 我试图查询:

    设置 identity_insert mytable ON

  • 然后删除该行并按照其他线程的建议重新添加和编辑 ID。但是,自动号码踢了,现在是第9行,我仍然无法编辑ID。我不确定我在这里做错了什么。有没有办法做到这一点?提前致谢。

    最佳答案

    您可能需要问为什么数字连续且没有间隙很重要:SQL 的 IDENTITY正如您所发现的那样, type 并不真正适用于这种功能。

    也就是说,如果您确实需要填补空白,那么您就快到了——您需要做的另一件事是用新的起始编号重新设置身份字段。在 SQL Server 中,这是通过 DBCC CHECKIDENT 实现的。 .

    不要把它变成一个程序化的东西——这应该是一个 DBA 任务,只有当你需要清理数据时,这在实践中是相当罕见的(十年来,我只用过一次) . 那是在开发数据库上;它从未在实时环境中使用过)。如果您发现自己定期重新播种,那么您需要重新考虑应用程序的行为。

    关于sql - 如何在sql中关闭自动编号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9026401/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com