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

OraclePLSQLで個々のトランザクションをコミットする方法

    自律変換 をご覧ください。 。デモもご覧ください

    CREATE TABLE t (
     test_value VARCHAR2(25));
    
    CREATE OR REPLACE PROCEDURE child_block IS
    PRAGMA AUTONOMOUS_TRANSACTION;
    BEGIN
       INSERT INTO t
       (test_value)
       VALUES
       ('Child block insert');
      COMMIT; 
    END child_block;
     /
    
    CREATE OR REPLACE PROCEDURE parent_block IS
    
    BEGIN
       INSERT INTO t
       (test_value)
       VALUES
       ('Parent block insert');
    
        child_block;
    
        ROLLBACK; 
    END parent_block;
     /
    

    実行:

     -- empty the test table
        TRUNCATE TABLE t;
    
       -- run the parent procedure
         exec parent_block;
    
       -- check the results
        SELECT * FROM t; 
    


    1. ソフト削除、一意キー、および外部キー制約のあるMySQL

    2. 条件に基づいて2番目のテーブルのレコード数とともに2つのテーブルを結合します

    3. Ruby-例外が発生しました:[Mysql2::Error]がMySQL接続を閉じました

    4. バインド変数でGROUPBYを使用することは可能ですか?