当前位置:首页 > 文章列表 > 文章 > 软件教程 > DBeaver CSV 导入现有表实战:列映射、NULL 标记与行数验收

DBeaver CSV 导入现有表实战:列映射、NULL 标记与行数验收

来源:17golang原创 2026-08-10 17:25:46 0浏览 收藏

DBeaver 把 CSV 导入现有表,最容易出错的地方不是选文件,而是列名对不上、空值被当成普通文本,以及导入完没核对实际写入的行数。稳妥的做法是先准备一份带表头的待导入文件,在 Data Transfer 向导里明确源列和目标列的对应关系,再把 __NULL__ 映射成数据库 NULL,最后用导入前后的行数和抽样记录做校验。

实践要点
  • 从目标表右键点选 Import Data,选 CSV 作为源文件进入 Data Transfer 向导。
  • 导入前先核对列名、数据类型和目标表主键,不要只看预览行就往下走。
  • 把约定好的 __NULL__ 识别为 NULL,空字符串则保留为空文本。
  • 提交后用写入行数、主键范围和一条 NULL 记录完成三点验收。

先准备一份能暴露问题的 CSV

别拿只有英文和数字的测试文件验证导入。比如做订单补录的场景,至少放一条中文、一条空备注、一条明确的 NULL 标记和一个时间字段:

order_id,customer_name,remark,paid_at,refund_reason
10021,张宁,改地址,晚一天发货,2026-08-01 09:13:22,__NULL__
10022,林舟,,2026-08-01 10:05:40,客户主动取消

目标表可以是 orders,其中 order_id 是主键,paid_at 是时间字段。导入前先确认测试用的订单号 10021 和 10022 不会和已有订单重复,不然后续看到的失败可能是主键冲突,而非 CSV 配置问题。

DBeaver Import Data 向导选择 orders.csv 并预览中文、时间和 NULL 标记

从目标表入口启动 Import Data

在 Database Navigator 里找到目标 schema 下的 orders 表,右键选 Import Data,源类型选 CSV,挑好文件进入下一步。导入现有表时,目标表会从入口自动确定,这里还是要在向导里再次确认连接、schema 和表名,避免选错库。

如果 CSV 首行已经写了列名,打开“首行作为列名”的对应选项,让预览区显示 order_idcustomer_name 等字段。要是预览第一行还是具体数据,先别继续,后续列映射会整体错一行。

列映射和 NULL 规则要逐项核对

进入列映射页面后,逐列确认源字段和目标字段的对应关系。常见错误是把 paid_at 映射到金额字段,或者 CSV 列顺序变了之后还按位置直接导入。优先按列名匹配,再核对类型:

CSV 源列目标列检查点
order_idorders.order_id整数、主键、不重复
customer_nameorders.customer_nameUTF-8 中文可读
remarkorders.remark空字符串不误转 NULL
paid_atorders.paid_at时间格式与数据库一致
refund_reasonorders.refund_reason__NULL__ 转成真正 NULL

NULL 标记要在导入设置里统一配置。如果下游约定 __NULL__ 代表数据库 NULL,就全程用同一个值,别直接把它当普通字符串写进字段。反过来,CSV 里两个连续分隔符代表的空文本,要按业务规则决定是否保留为空字符串。

DBeaver CSV 导入列映射页面核对 order_id、paid_at 与 NULL 转换规则

提交前后都保留可复查的记录

开始导入前,先记下来目标表当前的行数:

SELECT COUNT(*) AS before_count
FROM orders;

SELECT order_id, refund_reason
FROM orders
WHERE order_id IN (10021, 10022);

确认预览行数和 CSV 实际数据行数一致后再提交。任务完成提示只代表向导流程走完了,不代表每一行都符合业务预期。重新查询刚导入的主键范围,重点看中文、时间和 NULL 字段:

SELECT order_id, customer_name, remark, paid_at, refund_reason
FROM orders
WHERE order_id BETWEEN 10021 AND 10022
ORDER BY order_id;

验收至少要做三件事:

  1. 目标表行数的增量等于成功导入的数据行数。
  2. 主键 10021、10022 都能正常查到,没有重复插入。
  3. 10021 的 refund_reason 是数据库真正的 NULL,10022 的备注和时间和源文件完全对应。

导入失败时先定位问题层级

  • 预览就乱码:先检查 CSV 的文件编码,不用上来就改数据库字符集。
  • 列整体错位:检查分隔符、首行表头识别和引号包裹规则。
  • 时间字段报错:统一 CSV 的时间格式,确认目标列是否允许时区或秒数的精度差异。
  • 主键冲突:先查目标表里是不是已经存在同一个 order_id,再决定是跳过、更新还是换批次导入。
  • NULL 变成普通文字:回到 NULL 标记设置页面,确认 __NULL__ 没有被当成普通字符串写入库。

这里不用急着重复提交。先保存失败任务的错误行和日志,修正同一批 CSV 的问题后再导入,不然很容易把已经成功写入的部分再次重复插入目标表。

常见问题:DBeaver 导入 CSV 到现有表

为什么 CSV 预览正常,提交后中文却显示不对?

预览只说明 DBeaver 当前读取文件的方式正常,还要检查目标连接和数据库字符集;提交后直接查询目标表里的中文字段才能完成最终验证。

空字符串和 NULL 应该怎么区分处理?

用约定的标记表示 NULL,例如 __NULL__,连续分隔符生成的内容保留为空字符串。两者业务含义不同,导入规则也要明确记下来。

导入前需要关闭主键检查吗?

通常不建议这么做。主键冲突是很重要的输入质量信号,先清理重复数据或者选明确的更新策略,比临时关闭约束更容易后续追溯问题。

怎么判断导入没有少行?

比较 CSV 实际数据行数、导入任务提示的成功行数和目标表导入前后的行数增量;如果三者不一致,再去查看错误行日志和重复主键记录。

导入完成的最小核对清单

CSV 导入完成后,把源文件名、目标表、主键范围、成功行数、编码和 NULL 标记写进操作记录。下次重跑的时候,其他人可以先判断这批数据是不是已经落库,再决定要不要继续操作。

  • 源文件表头、编码、分隔符和预览行数已经确认无误。
  • 每个源列都映射到正确的目标列,主键处理策略明确。
  • 中文、时间、空字符串和 NULL 字段各抽查至少一条记录。
  • 导入前后行数与主键范围已经记录,没有直接重复提交。

DBeaver 导入 CSV 的核心,是从“文件能被读取”推进到“数据落库正确”。正确的入口、列映射、NULL 规则和提交后的数据库查询缺一不可,尤其是最后一步校验,能把看似成功的导入任务,变成可复查的可信结果。

版本声明
本文转载于:17golang原创 如有侵犯,请联系study_golang@163.com删除
DBeaver 怎么把 CSV 导入现有表:列映射、NULL 与提交验证DBeaver 怎么把 CSV 导入现有表:列映射、NULL 与提交验证
上一篇
DBeaver 怎么把 CSV 导入现有表:列映射、NULL 与提交验证
Go 批量导出如何避免结果归并拖垮内存:分段文件、排序归并与断点续写
下一篇
Go 批量导出如何避免结果归并拖垮内存:分段文件、排序归并与断点续写
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    543次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    516次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    500次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    485次学习
查看更多
AI推荐
  • SuperCLUE中文大模型评测基准:功能、能力维度与应用指南
    SuperCLUE
    SuperCLUE是权威的中文大语言模型综合评测基准,涵盖语言理解、知识应用、AI Agent智能体及安全性等12项核心能力。通过多轮对话与客观测试,定期发布榜单与技术报告,为模型研发、优化及行业选型提供科学依据。
    173次使用
  • C-Eval中文评测基准:大语言模型多学科能力评估指南
    C-Eval
    深入了解C-Eval中文评估套件,涵盖52个学科与4级难度。本文详解其功能特点、Zero-shot/Few-shot使用方法及代码示例,助您全面评测LLM中文理解与泛化能力。
    106次使用
  • AI Prompt Library:免费AI提示词库,助力ChatGPT高效创作与营销
    AI Prompt Library
    探索AI Prompt Library免费资源库,涵盖营销、写作及多场景AI提示词。兼容ChatGPT、Claude等工具,一键复制优化输出,提升工作效率。
    34次使用
  • LangGPT提示词框架:结构化Prompt设计方法与开源工具指南
    LangGPT
    LangGPT是一种受编程语言启发的结构化提示词设计工具,提供双层框架、模块化模板及变量功能,帮助用户高效编写高质量Prompt。该项目已在GitHub免费开源,适用于内容创作、编程辅助等多场景。
    42次使用
  • ClickPrompt:AI提示词生成与优化工具,支持Stable Diffusion、ChatGPT及代码辅助
    ClickPrompt
    ClickPrompt是一款专为AI提示词编写者设计的开源在线工具,支持Stable Diffusion绘图、ChatGPT对话及GitHub Copilot代码辅助。提供Prompt自动生成、一键运行、社区分享及可视化优化功能,帮助用户高效获取精准AI输出。
    79次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码