部署教程
CloudBeaver 查询与 CSV 导入导出:范围、字段和暂存表
在 CloudBeaver 查询 PostgreSQL、导出 CSV,再通过暂存表处理导入数据。
从查询结果到 CSV 文件
本篇承接 CloudBeaver 部署教程,使用 PostgreSQL 演示查询、导出与导入。appdb、public.orders 和下面字段均为演示名称,先在独立演示库准备对应表。
注册推荐码:KuZhuJi
确认连接,再限定结果范围
连接成功后先检查库名、数据库身份与会话时区:
SELECT current_database() AS database_name,
current_user AS database_user,
current_setting('TimeZone') AS session_timezone;假设 public.orders 有 id、status、amount、created_at,查询示例九月的记录:
SELECT id, status, amount, created_at
FROM public.orders
WHERE created_at >= TIMESTAMPTZ '2026-09-01 00:00:00+00'
AND created_at < TIMESTAMPTZ '2026-10-01 00:00:00+00'
ORDER BY created_at DESC, id DESC
LIMIT 100;时间范围采用包含开始、不包含结束的区间;排序加入 id。LIMIT 限制返回行数,但筛选和排序仍可能扫描较多数据。需要统计时直接聚合:
SELECT status, COUNT(*) AS order_count, SUM(amount) AS total_amount
FROM public.orders
WHERE created_at >= TIMESTAMPTZ '2026-09-01 00:00:00+00'
AND created_at < TIMESTAMPTZ '2026-10-01 00:00:00+00'
GROUP BY status
ORDER BY order_count DESC, status;导出时设置编码与字段
从查询结果或整表进入 Export,选择 CSV,核对编码、分隔符、列名表头、引号及 NULL 表示。两种导出入口的数据范围可能不同,按实际查询条件检查行数。
订单号和带前导零的编号按文本处理。中文、逗号、换行、引号、NULL 与空字符串各抽查一条,随文件记录查询条件、时区、币种和金额单位。
先将 CSV 导入暂存表
在独立演示库创建暂存表,将外部字段先按文本接收:
CREATE TABLE public.orders_import_stage (
source_id text,
status text,
amount_text text,
created_at_text text
);Data Editor 选择目标表,再进入 Import 上传 CSV,确认字段映射和分隔符。先用少量样例检查错列;官方文档把 XML、XLSX 导入列为 PRO 能力,本篇使用 CSV。
SELECT COUNT(*) AS imported_rows FROM public.orders_import_stage;
SELECT source_id, COUNT(*) AS copies
FROM public.orders_import_stage
GROUP BY source_id
HAVING COUNT(*) > 1;
SELECT * FROM public.orders_import_stage
WHERE source_id IS NULL OR btrim(source_id) = ''
LIMIT 20;核对行数、重复 source_id、空编号,再检查金额与日期能否转换。正式入库前决定主键冲突是拒绝、跳过还是更新。失败重试前检查已经写入的范围。
事务与备份分别处理
自动提交模式下,提交给数据库的写入可能立即生效;手动提交可在同一事务内决定 Commit 或 Rollback。关闭标签页不会撤回已提交的修改。
导出 INSERT 语句用于交换有限数据,完整数据库备份使用 pg_dump 等数据库工具,保留角色、权限和恢复步骤。CloudBeaver 工作区备份保存的是管理器配置,业务数据库另行备份。
