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

Postgresでテーブルを置き換えるにはどうすればよいですか?

    シンプル:

    BEGIN;
    DROP TABLE a;
    ALTER TABLE a1 RENAME TO a;
    COMMIT;
    

    DROP TABLE ACCESS EXCLUSIVEを取得します とにかくテーブルをロックします。明示的なLOCK コマンドは良くありません。そして、死んだ男の名前を変更するのは時間の無駄です。

    準備中に古いテーブルを書き込みロックすることをお勧めします 新しい、間に書き込みを防ぐため。次に、プロセスの早い段階で次のようなロックを発行します。

    LOCK TABLE a IN SHARE MODE;
    

    テーブルにアクセスしようとする同時トランザクションはどうなりますか?それほど単純ではありません。これを読んでください:

    次のようなエラーメッセージが表示される理由を説明します:



    1. クエリでMySQLキーワードを使用しますか?

    2. JavaをMySQLデータベースに接続します

    3. ODP.NETを使用したOracleの一括更新

    4. ORA-04076:NEWまたはOLDの指定が無効です - PL/SQL - Oracle Trigger