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
我怎样才能做到这一点?
首先,将表加载到同一数据库中的两个单独的模式中.
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)
不是我的想法,而是我过去读过的一个。
pg_dump -d db1 -t table1 |psql db2
then psql and do
insert into table2 (select * from table1);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7377 次 |
| 最近记录: |