Postgresql:合并2个类似的数据库

Gir*_*ish 9 database postgresql merge

我需要将两个数据库(Database1和Database2)合并到Postgresql中的公共数据库.

数据库1

表格1

Id - 值(Id是主键)

1 - a
2 - aa
3 - aaa
4 - aaaa

DATABASE2

表格1

Id值(Id是主键)

2 - bb
5 - bbbbb

我希望我的输出为

OutPutDatabase

表格1

Id值(Id是主键)

1 - a
2 - bb
3 - aaa
4 - aaaa
5 - bbbbb

我怎样才能做到这一点?

Kou*_*rev 7

首先,将表加载到同一数据库中的两个单独的模式中.

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
Run Code Online (Sandbox Code Playgroud)

然后,您可以通过在db1上优先使用db1来合并这两者.

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;
Run Code Online (Sandbox Code Playgroud)


Kub*_*aun 5

不是我的想法,而是我过去读过的一个。

来源:Move table to new database

pg_dump -d db1 -t table1 |psql db2

then psql and do

insert into table2 (select * from table1);
Run Code Online (Sandbox Code Playgroud)