我已经创建了表项目,如下所示:
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 ×1