sql >> Database teknologi >  >> RDS >> Oracle

Oracle SEQUENCE.Currval-problem i CodeIgniter

Der er en måde at få værdien automatisk tildelt til en kolonne:det er RETURNING-sætningen.

Så her er min sekvens:

SQL> select emp_seq.currval from dual
  2  /

   CURRVAL
----------
      8140

SQL>
 

Jeg vil bruge det i en INSERT-sætning:

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>

Jeg returnerede EMPNO til en SQL*Plus-variabel, som jeg kan udskrive, og den har samme værdi som CURRVAL:

SQL> print :seqval

    SEQVAL
----------
      8141

SQL> select emp_seq.currval from dual
  2  /

   CURRVAL
----------
      8141

SQL>
 

Dit næste spørgsmål er, "understøtter CodeIgniter RETURNING-systemet?" Jeg aner det ikke, men jeg formoder, at det ikke gør det. De fleste ikke-Oracle-frameworks gør det ikke.

Der er altid mulighed for at pakke INSERT-sætningen ind i en lagret procedure, men det er en arkitektonisk beslutning, som mange mennesker ikke kan lide.



  1. Hibernate + PostgreSQL:relation eksisterer ikke - SQL-fejl:0, SQLState:42P01

  2. ELLER Operatørkortslutning i SQL Server

  3. Analog af OUTER APPLY i andre RDBMS (ikke SQL Server)

  4. Livsforsikringsdatamodel