oracle APEX中的自动增量

时间:2016-06-21 17:46:51

标签: oracle oracle-apex

我有一个下表Asset(assetID,assetType),其中assetID是表的主键。

在oracle Apex中,我希望用户能够创建新的资产实例。但到目前为止,我似乎无法对assetID进行自动增量,而不是让用户每次都手动输入。

例如,目前如果要创建资产,我需要用户输入assetID和assetType,如果有一个已存在的assetID,它不会创建相同的实例,而是告诉用户assetID已经存在。

我想将此更改为自动递增,因此assetID并非遍布整个地方。我该怎么做?

1 个答案:

答案 0 :(得分:0)

在资产表

上创建序列和触发器

首先创建一个序列

CREATE SEQUENCE Asset_AssetID_SEQ 
  START WITH 1
  MAXVALUE 9999999999999999999999999999
  MINVALUE 1
  NOCYCLE
  CACHE 20
  NOORDER;

然后创建触发器

CREATE OR REPLACE TRIGGER BI_Asset_AssetID   
  before insert ON Asset               
  for each row
begin   
  if :NEW.AssetID is null then 
    select Asset_AssetID_SEQ.nextval into :NEW.AssetID from dual; 
  end if; 
end;

在用户端,仅插入assetType信息:

Insert into Asset (assetType) values ('Cars');

您将自动分配assetId。