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

Postgresql:2つの類似したデータベースをマージします

    まず、テーブルを同じデータベース内の2つの別々のスキーマにロードします。

    CREATE SCHEMA db1;
    CREATE TABLE db1.table1 (id INT PRIMARY KEY, value VARCHAR(10));
    -- load the contents of Table1 @ Database1 into db1.table1
    
    CREATE SCHEMA db2;
    CREATE TABLE db2.table1 (id INT PRIMARY KEY, value VARCHAR(10));
    -- load the contents of Table1 @ Database2 into db2.table1
    

    次に、db1よりもdb2を優先することにより、2つをマージできます。

    SELECT
      DISTINCT ON (id)
      id,
      value
    FROM (
      SELECT
        *,
        1 AS db
      FROM
        db1.table1
    
      UNION
    
      SELECT
        *,
        2 AS db
      FROM
        db2.table1) AS mix
    ORDER BY
      id,
      db DESC;
    


    1. 両方のテーブルから行を削除したい

    2. MySQLデフォルト値が指定されていない場合、タイムスタンプのデフォルト値が無効です。

    3. アルファ列の条件付きSQLORDERBY ASC / DESC

    4. SQLServerの大きなテーブルにNOTNULL列を追加するにはどうすればよいですか?