--创建seq和trigger
create or replace procedure pr_CreateIdentityColumn
(tablename varchar2,columnname varchar2)
as
strsql varchar2(1000);
begin
strsql := 'create sequence seq_'||tablename||' minvalue 1 maxvalue 999999999 start with 1 increment by 1 nocache';
execute immediate strsql;
strsql := 'create or replace trigger trg_'||tablename||' before insert on '||tablename||' for each row begin select seq_'||tablename||'.nextval into :new.'||columnname||' from dual; end;';
execute immediate strsql;
end;
-- 授权
GRANT CREATE ANY SEQUENCE TO "PM_DEV";
GRANT CREATE ANY TRIGGER TO "PM_DEV";
--执行
exec pr_createidentitycolumn('tbname','colname');
本文介绍了一种在Oracle数据库中通过创建序列(seq)和触发器(trigger)来实现表的自增ID的方法。具体步骤包括创建序列确保ID唯一性和连续性,并通过触发器在插入新记录时自动填充ID字段。
8464

被折叠的 条评论
为什么被折叠?



