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

postgresqlトリガー:自動コミットを無効にし、分離レベルを設定します

    PostgreSQLには、埋め込みSQLを除いて、自動コミットを無効にする設定がありません。たとえば、PSQLで自動コミットをオフに設定しようとすると、このようなエラーが表示されます。

    sandbox=# set autocommit=off;
    ERROR:  SET AUTOCOMMIT TO OFF is no longer supported
    

    代わりに、BEGINを使用してトランザクションを開始します。 PostgreSQLでは、トランザクションを開始し、単一のステートメントで分離レベルを設定できます。 (他のプラットフォームでは複数のステートメントが必要です。)スケルトン構文 PostgreSQL9.2の場合は

    BEGIN [ WORK | TRANSACTION ] [ transaction_mode [, ...] ]
    
    where transaction_mode is one of:
    
        ISOLATION LEVEL { SERIALIZABLE   | REPEATABLE READ | 
                          READ COMMITTED | READ UNCOMMITTED }
        READ WRITE | READ ONLY
        [ NOT ] DEFERRABLE
    

    COMMITまたはROLLBACKのいずれかでトランザクションを終了します。



    1. 一般的なテーブル式:それらをいつどのように使用するか

    2. SQLで列を一意にする方法は?

    3. ADO.NETを使用してSQLServer、Oracle、DB2、およびMySQLに同時に接続しますか?

    4. PostgreSQLarray_aggのようなMYSQL配列集計関数