gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 15:34:20 25 4
gpt4 key购买 nike

我想将一个大的 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] [22001]:数据截断:第 1 行的列“NAME_EDUCATION_TYPE”的数据太长”

列类型均为VARCHAR(20)。我不知道在哪里更改数据类型以适应更多字符。

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

创建表测试.application_test(

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))

最佳答案

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

ALTER TABLE TEST.application_test
MODIFY NAME_EDUCATION_TYPE VARCHAR(50);

您可以将 50 更改为任何合适的值。这将增加可能适合列的最大字符串长度。检查 .csv 中此列中最长的值是多少。您也可以随时修剪文件本身中的值。

对于那些正在寻找 DBeaver 为何默默地削减从 .csv 文件导入的行数的人,您可以在其日志中找到答案:

DBeaver Documentation - Log Files

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

关于mysql - 将表从 DBeaver 导出到 MySQL 数据库时如何修复丢失的行/数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58401479/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com