Je doet een "before insert"-trigger. In zo'n trigger voeg je niet in dezelfde tabel in - anders krijg je een oneindige lus. Gewoon toewijzen aan de variabele waarde:
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 ;
new
variabel. Laat me gewoon zeggen dat reeksen met een reden bestaan, en dat je ze voor dit doel moet gebruiken. Als u hun functionaliteit probeert na te bootsen, leidt dit waarschijnlijk tot fouten.