Det finns ett sätt att få värdet automatiskt tilldelat en kolumn:det är RETURNING-satsen.
Så här är min sekvens:
SQL> select emp_seq.currval from dual
2 /
CURRVAL
----------
8140
SQL>
Jag ska använda det i en INSERT-sats:
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>
Jag returnerade EMPNO till en SQL*Plus-variabel som jag kan skriva ut, och den har samma värde som CURRVAL:
SQL> print :seqval
SEQVAL
----------
8141
SQL> select emp_seq.currval from dual
2 /
CURRVAL
----------
8141
SQL>
Din nästa fråga är "stödjer CodeIgniter RETURNING-systemet?" Jag har ingen aning, men jag misstänker att det inte gör det. De flesta ramverk som inte kommer från Oracle gör det inte.
Det finns alltid möjlighet att slå in INSERT-satsen i en lagrad procedur, men det är ett arkitektoniskt beslut som många ogillar.