pgsql导出数据和导入数据踩到的坑,如何对表进行数据库迁移

项目中因为涉及到大面积数据跨数据库查询,为了降低延迟以及性能,决定进行数据表的跨数据库迁移到同一数据库。
目前是先在库上新建同样表结构的空表,空表的sql语句可以直接在pgadmin点击原表,在右方显示,把所有表语句写在一起,分号隔开统一在新数据库执行,得到了没有数据的新库里的原表。假定数据库和表为database1,database2,table1,table2

在安装好postgresql的环境下,执行:

  1. psql -U tonnn //psql -U [username] 选择登陆的角色
  2. \c database1 // \c [database] 选择数据库1
  3. \copy table1 to ‘/tmp/table1.csv’ delimiter ‘,’ csv header encoding ‘UTF_8’; //注意这个\杠,巨坑,导出一定要有,将table1导出到linux的/tmp/下的table1.csv文件,格式是utf-8,即支持中文
  4. \c database2 //选择数据库2
  5. copy table2 from ‘/tmp/table1.csv’ with (format csv,header true,quote ‘”’,DELIMITER ‘,’,encoding ‘UTF_8’); //导入数据到数据库2,没有开头的那个\

以上完成了全部操作。
使用上述办法完成了迁移,有更好的办法,可以评论里留言告我。

猜你喜欢

转载自blog.csdn.net/fwhezfwhez/article/details/80611769