主键表 - T表 '100W'数据同步到T1表(同步:TRUNCATE/DELETE或IMPDP...等方式[手动改数据])
成都创新互联主营黄山网站建设的网络公司,主营网站建设方案,成都App制作,黄山h5小程序制作搭建,黄山网站营销推广欢迎黄山等地区企业咨询
例如: T表对应SEQ_T.NEXTVAL= 100W;
T1表对应SEQ_T.NEXTVAL= 10W;
TRUNCATE TABLE T1;
INSERT TABLE T1 SELECT * FROM T;
数据同步但T1表对应SEQ_T.NEXTVAL= 10W序列不变;
此时T1调用序列INSERT到T1表时就会报错 ( ORA-00001 : 违反唯一约束条件 (LOTTERY.PK_T1))
(若批量同步很多表就可能会引起很多表序列需要更新成主键最大值+ 1才能保证不报错
(可以用把源库的SEQUENCE同步过来①或者如下存储解决② ))
在oracle中,可以这样做:
1、建立一个存储过程proc_reset_seq负责将SEQUENCE重置,即drop再建立SEQUENCE;记得存储过程不能带任何参数。
2、再用有SYS.DBA_JOBS权限的用户执行:
declare v_jobname NUMBER;
sys.DBMS_JOB.SUBMIT(v_jobname,'proc_reset_seq;',TRUNC(SYSDATE + 1,'DD'),'TRUNC(SYSDATE+1,''DD'') ');
可以做到,对结果再一次分组呗,用分析函数,你这个第一行其实没有什么用,就是记录相同的第二列值是数以第几个,
select zaawdm ,
row_number() over(partition by zaawdm order by zaawdm ASC) XH
from table_name
这样就可以了,你的表列的名字起得太不规范了,看着都难受。
分享题目:oracle如何修改序号 修改oracle序列号当前值
当前链接:https://www.cdcxhl.com/article26/hhiecg.html
成都网站建设公司_创新互联,为您提供软件开发、云服务器、标签优化、搜索引擎优化、响应式网站、企业建站
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联