暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 将12c标识列序列重置为1

askTom 2017-05-08
416

问题描述

对于整个模式,需要一个脚本来将所有12c标识列seq重置为1。

识别所有身份列 .... 我相信应该有一个数据字典视图。

然后做一些改变脚本。

就像从视图中选择 “改变身份”;

谢谢。


专家解答

SQL> create table t ( x int generated as identity, y int);

Table created.

SQL>
SQL> insert into t (y) select 10*rownum from dual connect by level <= 10;

10 rows created.

SQL>
SQL> alter table t modify x generated as identity ( minvalue 0 );

Table altered.

SQL>
SQL> alter table t modify x generated as identity ( increment by -10 );

Table altered.

SQL>
SQL> insert into t (y) values ( 1 );

1 row created.

SQL> roll;
Rollback complete.
SQL>
SQL> alter table t modify x generated as identity ( increment by 1);

Table altered.

SQL>
SQL> insert into t (y) values ( 1 );

1 row created.

SQL>
SQL> select * from t;

         X          Y
---------- ----------
         1         10
         2         20
         3         30
         4         40
         5         50
         6         60
         7         70
         8         80
         9         90
        10        100
         1          1

复制


但是说真的... 试着重新考虑这个要求。身份列就是-身份。需要它为 “1” 是对列值传达某种特殊含义…… 而不是身份列的意图
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论