gpt4 book ai didi

oracle - 如何在Oracle中重置“身份”列

转载 作者:行者123 更新时间:2023-12-01 11:23:55 27 4
gpt4 key购买 nike

我有一列具有身份的列,其计数为19546542,我想在删除所有数据后将其重置。我需要类似ms sql中的'dbcc checkident'这样的内容,但在Oracle中

最佳答案

在Oracle 12c及更高版本中,您可以通过3种方式来做到这一点:

  • 手动将序列的下一个值重置为特定值:

  • ALTER TABLE [TableName] MODIFY(ID GENERATED AS IDENTITY (START WITH 1));


  • 自动将序列的下一个值重置为最大ID值:

  • ALTER TABLE [TableName] MODIFY ID GENERATED BY DEFAULT AS IDENTITY (START WITH LIMIT VALUE);


    以上两种情况都将允许您在标识列中插入带有值的数据
    insert into [TableName] (ID, Name) VALUES (1, 'Name1');
    insert into [TableName] (ID, Name) VALUES (2, 'Name2');
  • 自动将序列的下一个值重置为最大ID:

  • ALTER TABLE [TableName] MODIFY ID GENERATED ALWAYS AS IDENTITY (START WITH LIMIT VALUE);


    但是,在这种情况下,它将限制您使用身份列值插入
    insert into [TableName] (Name) VALUES ('Name1');
    insert into [TableName] (Name) VALUES ('Name2');
    如果将值传递给标识列,则会出现错误

    ORA-32795: cannot insert into a generated always identity column

    关于oracle - 如何在Oracle中重置“身份”列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39295422/

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