Existuje způsob, jak získat hodnotu automaticky přiřazenou ke sloupci:je to klauzule RETURNING.
Takže tady je moje sekvence:
SQL> select emp_seq.currval from dual
2 /
CURRVAL
----------
8140
SQL>
Použiji jej v příkazu 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>
Vrátil jsem EMPNO do proměnné SQL*Plus, kterou mohu vytisknout, a má stejnou hodnotu jako CURRVAL:
SQL> print :seqval
SEQVAL
----------
8141
SQL> select emp_seq.currval from dual
2 /
CURRVAL
----------
8141
SQL>
Vaše další otázka je, "podporuje CodeIgniter sysntaxi RETURNING?" Nemám tušení, ale mám podezření, že ne. Většina rámců jiných než Oracle ne.
Vždy existuje možnost zabalit příkaz INSERT do uložené procedury, ale to je architektonické rozhodnutí, které se mnoha lidem nelíbí.