sql >> Database >  >> RDS >> Oracle

Oracle SEQUENCE. Currval-probleem in CodeIgniter

Er is een manier om de waarde automatisch aan een kolom toe te wijzen:het is de RETURNING-component.

Dus, hier is mijn volgorde:

SQL> select emp_seq.currval from dual
  2  /

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

SQL>

Ik ga het gebruiken in een INSERT-statement:

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>

Ik heb de EMPNO teruggestuurd naar een SQL*Plus-variabele die ik kan afdrukken, en deze heeft dezelfde waarde als CURRVAL:

SQL> print :seqval

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

SQL> select emp_seq.currval from dual
  2  /

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

SQL>

Uw volgende vraag is, "ondersteunt CodeIgniter de RETURNING-sysntax?" Ik heb geen idee, maar ik vermoed van niet. De meeste niet-Oracle-frameworks niet.

Er is altijd de mogelijkheid om de INSERT-instructie in een opgeslagen procedure in te pakken, maar dat is een architecturale beslissing waar veel mensen een hekel aan hebben.



  1. Hoe maak je een database van shell-opdracht?

  2. Waarschuwing:mysqli_stmt::bind_param():het aantal variabelen komt niet overeen met het aantal parameters in de voorbereide instructie

  3. Visual Studio 2015 SQL Server Data Tools ontbreekt de optie Tabel toevoegen

  4. Wat is de beste manier om coördinaten (lengtegraad/breedtegraad, van Google Maps) op te slaan in SQL Server?