2016-06-21 64 views
0

我有一个下面的表资产(assetID,assetType)其中assetID是表的主键。在oracle中自动增量APEX

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

例如,如果您想要创建资产,我需要用户输入assetID和assetType,并且如果有一个assetID已经存在,它不会创建相同的实例,但会告诉用户assetID已经存在。

我想将其更改为自动增量,以便assetID不是全部。我该怎么做呢?

+0

使用一个序列,或max(assetId)+ 1 – Typo

+0

您使用哪个组件?表格形式?在报告上填写表格? ... – User42

回答

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自动分配。