Hi,
- create a sequence
- create a trigger
- fire trigger on inserting
for exampel:
BE=Tablespace
TBLMA=Table
CREATE OR REPLACE TRIGGER "BE"."TRG_TBLMA"
BEFORE INSERT OR UPDATE ON "BE"."TBLMA"
REFERENCING OLD AS OLD NEW AS NEW
FOR EACH ROW
DECLARE
iCounter TBLMA.KENNID%TYPE;
cannot_change_counter EXCEPTION;
BEGIN
IF INSERTING THEN
Select SEQ_TBLMA.NEXTVAL INTO iCounter FROM Dual;
:new.KENNID := iCounter;
END IF;
IF UPDATING THEN
IF NOT (:new.KENNID = :old.KENNID) THEN
RAISE cannot_change_counter;
END IF;
END IF;
EXCEPTION
WHEN cannot_change_counter THEN
raise_application_error(-20000, 'Cannot Change Counter Value');
END;