【发布时间】:2019-10-15 19:30:31
【问题描述】:
我想将一个大的 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))
【问题讨论】:
-
看一下 MySQL (
SHOW CREATE TABLE tablename) 上的表定义。并且,查看 CSV 文件的前几行。表中的列定义是否与 CSV 中的内容匹配?如果你要edit你的问题来展示这些东西,我们可能会更好地帮助你。 -
您好,我刚刚更新了我的问题,以根据我对您提到的内容的理解来显示这些内容