温馨提示×

pgAdmin如何实现数据导入导出

小樊
43
2025-12-13 22:01:09
栏目: 编程语言

pgAdmin实现数据导入导出的常用方法

一 全库备份与恢复 Backup Restore

  • 适用场景:迁移或备份整个数据库、保留结构与数据、跨环境恢复。
  • 导出步骤
    • 在左侧树形导航中右键目标数据库,选择Backup…
    • 在弹窗中设置:
      • Filename:导出文件路径与名称。
      • Format:选择Plain(纯SQL脚本)或Custom/Tar(自定义归档,便于选择性恢复)。
      • 选项:按需勾选“只导出结构(-s)”“只导出数据(-a)”“包含/排除对象”等。
    • 点击Backup开始,右下角显示进度,完成后得到备份文件。
  • 导入步骤
    • 若恢复至新库,先创建空数据库(字符集与排序规则保持一致)。
    • 右键目标数据库,选择Restore…
    • 选择备份文件,Format 需与导出时一致;自定义归档可用pg_restore进行选择性对象恢复。
    • 点击Restore开始,完成后在对象树中校验表与数据。

二 表级数据导入导出 Import Export CSV

  • 适用场景:批量导入/导出表数据(如与 Excel/BI 工具交换数据)。
  • 导出为 CSV
    • 方法一:在对象树中右键表,选择Export…,格式选CSV,勾选CSV HEADER(导出列名),设置分隔符(如逗号),指定文件路径后开始导出。
    • 方法二:在Query Tool中执行:
      • 导出整表:COPY table_name TO ‘/path/out.csv’ WITH CSV HEADER;
      • 导出查询结果:COPY (SELECT * FROM table_name WHERE …) TO ‘/path/out.csv’ WITH CSV HEADER;
  • 从 CSV 导入
    • 方法一:在对象树中右键表,选择Import…,选择 CSV 文件,设置分隔符Header选项、对应列映射与数据格式,开始导入。
    • 方法二:在Query Tool中使用 COPY(服务器端文件,需数据库服务器可访问该路径):
      • COPY table_name FROM ‘/path/in.csv’ WITH CSV HEADER;
    • 注意:若文件在客户端,请使用**\copy**(在 psql 中)或客户端工具的上传功能;在 pgAdmin 的 Import 对话框中通常直接选择客户端文件并上传。权限与路径需满足服务器安全策略。

三 执行 SQL 脚本导入 dump.sql

  • 适用场景:已有 .sql 脚本(如 pg_dump 导出的纯文本脚本)需要在目标库中执行。
  • 方式一(推荐):在 pgAdmin 顶部菜单Tools → Query Tool,打开/粘贴 SQL 脚本,点击Execute/Refresh执行;或打开文件后执行。
  • 方式二:使用 psql 命令行执行(适合大文件与自动化):
    • psql -U 用户名 -d 数据库名 -f /path/dump.sql
  • 提示:若脚本包含建库语句,请先创建目标库;若脚本为自定义归档(-F c/-F t),应使用Restore而非直接执行 SQL。

四 常见问题与最佳实践

  • 版本差异:不同版本的 pgAdmin 界面名称与细节略有差异,但核心流程一致(Backup/Restore、Import/Export、Query Tool 执行脚本)。
  • 权限与路径:执行导入/导出需要相应权限;服务器端 COPY 要求文件对数据库服务器可见,客户端文件请使用 Import 对话框或 psql 的 \copy。
  • 编码与格式:导出 CSV 时统一字符编码(常见 UTF-8)分隔符,并在导入时保持一致;导出时建议勾选CSV HEADER以便列映射。
  • 大对象与性能:大数据量建议用Custom/Tar格式配合pg_restore进行并行/选择性恢复;必要时分批导入、在闲时执行、监控锁与长事务。

0