Provádíte spouštění „před vložením“. V takovém spouštěči nevkládáte do stejné tabulky - jinak můžete získat nekonečnou smyčku. Stačí k proměnné přiřadit hodnotu:
CREATE OR REPLACE TRIGGER trig_deptno2
BEFORE INSERT ON dept2
FOR EACH ROW
DECLARE v_deptno NUMBER(2) ;
BEGIN
SELECT coalesce(MAX(deptno) + 1, 1) INTO :new.deptno
FROM dept2 ;
END trig_deptno2 ;
Po dokončení spouštění vloží správné hodnoty z new
proměnná.
Dovolte mi říci, že sekvence existují z nějakého důvodu a měli byste je k tomuto účelu používat. Pokus o napodobení jejich funkčnosti pravděpodobně povede k chybám.