Ubuntu上pgAdmin导入导出数据步骤
sudo apt install postgresql pgadmin4安装);导出整个数据库:
在pgAdmin左侧导航栏展开“Servers”,选择目标服务器,展开“Databases”,右键点击要导出的数据库→选择“Backup(备份)”。
在弹出的“Backup”窗口中:
/home/user/mydb_backup.sql);导出单张表:
展开目标数据库→“Schemas”→“Public”→“Tables”,右键点击要导出的表→选择“Import/Export Data”。
在“Import/Export”窗口中:
使用COPY命令导出表数据到CSV文件(需替换表名、路径及条件):
-- 导出单表数据(含列名)
COPY your_table_name TO '/path/to/export_file.csv' WITH (FORMAT csv, HEADER true, DELIMITER ',');
-- 导出查询结果(如筛选年龄大于25的用户)
COPY (SELECT * FROM users WHERE age > 25) TO '/path/to/query_result.csv' WITH (FORMAT csv, HEADER true);
执行命令后,数据将保存至指定路径(需确保PostgreSQL用户对路径有写入权限)。
导入到现有数据库:
在pgAdmin左侧导航栏选择目标数据库→右键点击→选择“Restore(还原)”。
在“Restore”窗口中:
.sql、.dump);导入单张表(从CSV):
展开目标数据库→“Schemas”→“Public”→“Tables”,右键点击目标表→选择“Import/Export Data”。
在“Import/Export”窗口中:
使用COPY命令从CSV文件导入数据到表(需替换表名、路径及条件):
-- 导入CSV数据(需表结构已存在,且列顺序与CSV一致)
COPY your_table_name FROM '/path/to/import_file.csv' WITH (FORMAT csv, HEADER true, DELIMITER ',');
-- 导入时指定列(如跳过CSV中的ID列,由数据库自动生成)
COPY your_table_name (name, age, city) FROM '/path/to/import_file.csv' WITH (FORMAT csv, HEADER true);
执行命令前,需确保:
ON CONFLICT子句处理(如ON CONFLICT (id) DO NOTHING)。CREATE、INSERT、SELECT),若权限不足,可通过GRANT语句授权(如GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;)。Clean选项)或“跳过冲突行”(ON CONFLICT DO NOTHING),避免数据覆盖。pg_dump/pg_restore命令行工具(支持并行处理、压缩),提高效率(如pg_dump -U user -Fc -f backup.dump mydb)。