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

再帰SQLレベルの最大数(50)を超えました

    「挿入前」トリガーを実行しています。このようなトリガーでは、同じテーブルに挿入しません。そうしないと、無限ループが発生する可能性があります。変数値に割り当てるだけです:

    CREATE OR REPLACE TRIGGER trig_deptno2
    BEFORE INSERT ON dept2
    FOR EACH ROW
    DECLARE v_deptno NUMBER(2) ;
    BEGIN
        SELECT coalesce(MAX(deptno) + 1, 1) INTO :new.deptno
        FROM dept2 ;
    END trig_deptno2 ;
    

    トリガーが終了すると、newから適切な値が挿入されます。 変数。

    シーケンスが存在するのには理由があるので、この目的で使用する必要があります。それらの機能を模倣しようとすると、エラーが発生する可能性があります。



    1. SQL Server 2008でデータをjson形式に変換する方法は?

    2. Oracleのテーブル変更権限が不十分

    3. シリアル化されたデータによるmysqlの順序?

    4. 失敗したRails移行のロールバック