首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复从DBeaver到MySQL数据库导出表时丢失的行/数据?

如何修复从DBeaver到MySQL数据库导出表时丢失的行/数据?
EN

Stack Overflow用户
提问于 2019-10-16 03:30:31
回答 2查看 2.2K关注 0票数 0

我想要将一个大的csv文件导入到MySQL中,并且我使用DBeaver来实现(更快)。但是,当我完成从DBeaver到MySQL数据库的表导出时,数据/记录丢失。

丢失数据的原因是什么?我如何修复它?

这是在macOS Mojave上。我已经将csv文件导入到DBeaver (添加连接),并运行了count(*)代码-有48744条记录。

但是,当我将表导出到MySQL数据库并在MySQL中再次运行它时,只有9021条记录。

SQL代码:"=select count(*) from table name“

我预计MySQL读取的记录量与DBeaver相同,但它只读取不到总记录数的20%。

从DBeaver到MySQL数据库的表导出错误消息:

“数据加载过程中出错原因: SQL错误1406:数据截断:行1处的列'NAME_EDUCATION_TYPE‘的数据太长”

列类型都是VARCHAR(20)。我不知道在哪里更改数据类型才能容纳更多字符。

更新10/16:这里是创建表代码。csv列与内容匹配。

创建表TEST.application_test(

代码语言:javascript
复制
SK_ID_CURR VARCHAR(20),

NAME_CONTRACT_TYPE VARCHAR(20),

CODE_GENDER VARCHAR(20),
...

AMT_REQ_CREDIT_BUREAU_QRT VARCHAR(20),

AMT_REQ_CREDIT_BUREAU_YEAR VARCHAR(20))
EN

回答 2

Stack Overflow用户

发布于 2021-10-08 12:36:38

在您的数据库上下文中使用DBeaver运行以下代码:

代码语言:javascript
复制
ALTER TABLE TEST.application_test
MODIFY NAME_EDUCATION_TYPE VARCHAR(50);

您可以使用任何合适的值来更改50。这将增加列中可以容纳的最大字符串长度。检查.csv中此列中的最长值是多少。您也可以始终修剪文件本身中的值。

对于那些正在搜索为什么DBeaver会默默地减少从.csv文件导入的行数的人,您可以在它的日志中找到答案:

DBeaver Documentation - Log Files

通常的答案是类型问题(不能解析特定格式的日期,或者文本值有两个长度来适应数据库中允许的长度)。

票数 1
EN

Stack Overflow用户

发布于 2019-10-17 04:56:42

至少有一个mysql列没有达到所需的最小大小。我建议修改你的VARCHARS和CSV列的大小。可以在excel上创建一个公式,以帮助您发现CSV每列中更大尺寸的数据。要注意环境字符串字符(‘/),有时很难做到这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58401479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档