小编ol'*_*uts的帖子

甲骨文如何更改标识列的下一个自动生成的值

我已经创建了表项目,如下所示:

CREATE TABLE projects (
  project_id NUMBER(10,0) GENERATED BY DEFAULT ON NULL AS IDENTITY ,
  project_name VARCHAR2(75 CHAR) NOT NULL
Run Code Online (Sandbox Code Playgroud)

然后,我从旧的MySQL表导入数据时插入了约150,000行。MySQL具有我需要保留的现有ID号,因此我在插入过程中将ID号添加到了SQL中。现在,当我在oracle表中插入新行时,id是一个非常小的数字。您能否告诉我如何将project_id列上的计数器重置为从150,001开始,以免弄乱我现有的任何ID号?基本上我需要以下的oracle版本:

ALTER TABLE tbl AUTO_INCREMENT = 150001;
Run Code Online (Sandbox Code Playgroud)

编辑:Oracle 12c现在支持标识数据类型,允许使用不需要我们创建序列+插入触发器的自动编号主键。

解决方案:经过一些创造性的google搜索词后,我能够在oracle docs网站上找到线程。这是更改身份下一个值的解决方案:

ALTER TABLE     projects    MODIFY  project_id  GENERATED BY DEFAULT ON NULL AS IDENTITY ( START WITH   150000);
Run Code Online (Sandbox Code Playgroud)

oracle12c

4
推荐指数
2
解决办法
5343
查看次数

标签 统计

oracle12c ×1