我有一个下表Asset(assetID,assetType),其中assetID是表的主键。
在oracle Apex中,我希望用户能够创建新的资产实例。但到目前为止,我似乎无法对assetID进行自动增量,而不是让用户每次都手动输入。
例如,目前如果要创建资产,我需要用户输入assetID和assetType,如果有一个已存在的assetID,它不会创建相同的实例,而是告诉用户assetID已经存在。
我想将此更改为自动递增,因此assetID并非遍布整个地方。我该怎么做?
答案 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。