当前位置:首页 > 文章列表 > 文章 > 软件教程 > 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推荐
  • ljg-skills -
    ljg-skills
    ljg-skills 是李继刚开源的 AI 技能与提示词集合,面向大模型使用者整理了一批可复用的 prompt、角色设定和任务技能模板,适合用于学习提示词设计、搭建个人 AI 工作流和沉淀团队常用智能体能力。
    4791次使用
  • MELO音乐 - AI 音乐生成平台,支持多模态创作能力
    MELO音乐
    MELO音乐是一站式AI视频与音乐制作助手,对标suno, udio的高品质体验。提供伴奏生成、原创写词、无损导出、哼唱识曲、混音变声等全套音频与短视频编辑工具。无论是流行Kpop、电音说唱、民谣古风、摇滚儿歌还是商用轻音乐,MELO为你免费谱曲,轻松做同款!
    4381次使用
  • UniScribe - AI 免费在线音视频转文字平台
    UniScribe
    UniScribe 是一款 AI 音视频转文字与内容整理工具,支持上传音频、视频文件或粘贴 YouTube 链接,自动生成转写文本、摘要、思维导图和关键问题,并支持多格式导出,适合会议记录、课程学习、访谈整理和内容创作复盘。
    4326次使用
  • 剧云 - 免费 AI 智能中文剧本创作平台
    剧云
    剧云是专业中文剧本创作平台,安全稳定运行十余年,集成AI编剧、剧本医生审核、人物小传、剧情关系图、大纲编写、多人协作、Word导入导出、版权管控功能,数据安全防护,轻松高效创作剧本。
    4565次使用
  • 万象有声 - AI 一站式有声内容创作平台
    万象有声
    万象有声,一个专为有声创作者打造的新一代智能有声内容创作平台。平台提供专业的智能拆章、智能画本编辑、AI配音、AI生成音效、后期制作、智能对轨、智能审听等有声创作全流程工具,可以帮助创作者高效、低成本创作出引人入胜的有声作品。立即体验,让有声书制作更简单!
    4510次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码