sql >> データベース >  >> RDS >> Oracle

OracleSEQUENCE.CodeIgniterのCurrval問題

    列に自動的に割り当てられる値を取得する方法があります。それは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 sysntaxをサポートしていますか?」です。わかりませんが、分からないと思います。 Oracle以外のほとんどのフレームワークはそうではありません。

    INSERTステートメントをストアドプロシージャでラップするオプションは常にありますが、それは多くの人が嫌うアーキテクチャ上の決定です。



    1. OracleでXMLデータを開く方法

    2. SQLServer内部結合の基本と例

    3. Kubernetesを使用したProxySQLネイティブクラスタリング

    4. 2つの日付の間の日付を選択するSQLクエリ