Oracle 动态主键序列创建

原创
2016-06-07 14:57:54 1191浏览

1.要保留原始的数据时,避免主键重复。每次删除序列再重建是不是很较麻烦呢?那么用这个语句简单方便多了。 3个参数:order_sq是序列名。order是表名,内部的主键是id。 2.写完语句验证是否正确可以用pl/slq-新建-测试窗口,进行单步调试。谢谢。 Oracle drop

1.要保留原始的数据时,避免主键重复。每次删除序列再重建是不是很较麻烦呢?那么用这个语句简单方便多了。
3个参数:order_sq是序列名。order是表名,内部的主键是id。

2.写完语句验证是否正确可以用pl/slq->新建->测试窗口,进行单步调试。谢谢。
Oracle
drop sequence order;
declare
v_sql varchar2(1000);
v_num number(20):=1;
begin
v_sql:='create sequence order_sq';
select max(order_sq.id)+1 into v_num from order;
if v_num is null then v_num :=1;
end if;
v_sql:=v_sql||' minvalue 1 maxvalue 9999999999999999999999999999 start with '||v_num ||' increment by 1 cache 20';
execute immediate v_sql;
end;
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。