CREATE TABLE test ( id NUMBER PRIMARY KEY, description VARCHAR(1000), created DATE, superuser_username VARCHAR(16) NOT NULL, subject_subjectCode VARCHAR(32) NOT NULL, bookey INTEGER, CONSTRAINT test_superuser_fkey FOREIGN KEY (superuser_username) REFERENCES superuser (username), CONSTRAINT test_subject_fkey FOREIGN KEY (subject_subjectCode) REFERENCES subject (subjectCode), CONSTRAINT test_test_fkey FOREIGN KEY (bookey) REFERENCES test (id) ); CREATE SEQUENCE test_seq START WITH 1 INCREMENT BY 1; CREATE TRIGGER test_trigger BEFORE INSERT ON test FOR EACH ROW WHEN (new.id IS null) BEGIN SELECT test_seq.nextval INTO :new.id FROM dual; END test_trigger