Има начин да получите автоматично присвоена стойност на колона:това е клаузата RETURNING.
И така, ето моята последователност:
SQL> select emp_seq.currval from dual
2 /
CURRVAL
----------
8140
SQL>
Ще го използвам в оператор INSERT:
SQL> var seqval number
SQL> insert into emp
2 (empno, ename, deptno, sal, job)
3 values
4 (emp_seq.nextval, 'JELLEMA', 50, 4575, 'PAINTER')
5 returning empno into :seqval
6 /
1 row created.
SQL>
Върнах EMPNO в променлива SQL*Plus, която мога да отпечатам, и има същата стойност като CURRVAL:
SQL> print :seqval
SEQVAL
----------
8141
SQL> select emp_seq.currval from dual
2 /
CURRVAL
----------
8141
SQL>
Следващият ви въпрос е "CodeIgniter поддържа ли RETURNING синтаксиса?" Нямам представа, но подозирам, че не е така. Повечето рамки, различни от Oracle, не го правят.
Винаги има опция за обвиване на оператора INSERT в съхранена процедура, но това е архитектурно решение, което много хора не харесват.