怎样将表中的某列转换成自增列且以前存在的数据不变,从当前最大值开始实现自增,以下是解决步骤:
- 先将TABLE3表名右击重命名成TABLE2
ALTER TABLE TABLE_3 rename TO TABLE_2
- 再右击已重命名的表名TABLE2,选择【生成SQL脚本】-> 【Create to】-> 【新SQL编辑器】
- 将创建表的语法粘贴到新SQL编辑器后,,将表名修改成重命名前的表名,将id列的类型修改成int或者bigint类型,再加上自增列的当前值和增长值,其他语法不变,如下图所示:
CREATE TABLE "SYSDBA"."TABLE_3"
(
"id" int NOT NULL IDENTITY(1, 1),
"name" VARCHAR2(50),
NOT CLUSTER PRIMARY KEY("id")) STORAGE(ON "MAIN", CLUSTERBTR) ;
|
语法格式
IDENTITY [ (种子, 增量) ]
- 执行以下sql,关闭自增长
SET IDENTITY_INSERT "SYSDBA"."TABLE_3" ON
- 创建好表后,再利用insert .. select ..语法将TABLE2的数据插入到新创建的TABLE3表中,要注意加上列名
如果列名比较多的话,可以右击表名,【生成SQL脚本】,选择【insert to】,自动获所有列,记得修改表名。
- 执行以下sql,开启自增长
SET IDENTITY_INSERT "SYSDBA"."TABLE_3" OFF