Powerdesiger Oracle自动增长列的脚本设置

今天在做一个简单的表设计,为了方便导出脚本设置了一下自动增长列,记录一下方便以后使用。

Powerdesiger Oracle自动增长列的脚本设置_第1张图片

drop sequence S_T_USER;

create sequence S_T_USER
increment by 1 --步长
start with 1 --开始值
 maxvalue 9999999999 --最大值
 minvalue 1 --最小值
cycle --循环 如果不是临时数据不要启用循环
 cache 20; --缓存


第一步新建一个Sequence 命名为S_T_USER


Powerdesiger Oracle自动增长列的脚本设置_第2张图片

create or replace trigger TRI_%TABLE%_ID
  before insert on %TABLE%   -- 表名
  for each row
declare
  nextid number;
begin
  .FOREACH_COLUMN("SQCOLN")
--  Column "%COLUMN%" uses sequence [%SQNCOWNER%]%SQNC%
IF :new.%COLUMN% IS NULL or :new.%COLUMN%=0 THEN -- 列名
    select S_%TABLE%.nextval --SEQUENCE
    into nextid
    from sys.dual;
    :new.%COLUMN%:=nextid;
  end if;
.ENDFOR
end TRI_%TABLE%_ID;


第二步新建Trigger Template Item 命名为NEXTID


Powerdesiger Oracle自动增长列的脚本设置_第3张图片


第三步新建Trigger Template 将第二步新建的Trigger Template Item Trigger:NEXTID 加入到Trigger Template中



Powerdesiger Oracle自动增长列的脚本设置_第4张图片


第四步打开表在Sequence处选择第一步新建的Sequence:S_T_USER


Powerdesiger Oracle自动增长列的脚本设置_第5张图片


第五步在表设置中找到Triggers设置将第三部新建的Trigger Template加入


Powerdesiger Oracle自动增长列的脚本设置_第6张图片


OK  注意命名规则 表名:T_USER  / Sequence:S_T_USER  /  Trigger:TRI_T_USER_ID 


你可能感兴趣的:(oracle,sequence,trigger,PowerDesginer,自动增长列)