2016-06-21 84 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自動分配。