【问题标题】:Issue with importing column with null values from Excel to MYSQL Workbench将具有空值的列从 Excel 导入 MYSQL Workbench 的问题
【发布时间】:2015-11-05 02:58:39
【问题描述】:

我有一个使用 MYSQL Workbench 管理的 MYSQL 数据库。我正在尝试将 Excel 中的数据(当然是转换为 CSV)导入到现有表中,我经常这样做并且通常没有问题。从技术上讲,从 MYSQL 的角度来看,MYSQL Workbench 通过生成一系列“插入”语句来处理这个问题,而不是作为导入语句。

我遇到了问题,因为我要导入的特定数据集在最后一列中没有值。在数据库中,表中的最后一列需要一个 2 位数字(或 NULL)。当我导入数据并且 MYSQL Workbench 将其转换为“插入”语句时,我希望最后一列中插入的值是 NULL。相反,我尝试插入的每一行都不断收到 1644 错误。

这是我尝试过但没有奏效的方法: - 将最后一列留空 - 用 NULL 字填充列 - 用字符 \N 填充列 - 添加一个假行(稍后将被删除),它实际上在最后一列中有一个值,以便它可以意识到那里有一列

我没有想法。理想情况下,我想坚持使用 MYSQL Workbench 的“导入”(即插入)功能的过程,这样我就可以从 Excel 中添加数据块,而且我不能手动编辑数据库中的每一行。

示例(当我将最后一列留空时) 下面是 CSV 中一行数据的样子: 4209,阅读,2015,1。秋季,10/12/15,114,212,3.4,93

自动生成的“插入”如下所示: 插入TestsTestIDSubjectYearSeasonTestStartDateDurationRITStdError,@98764031AccuratePercentile987654331AccuratePercentile987654331 ', '读书', '2015', '1. Fall', '10/12/15', '114', '212', '3.4', '93', '');

这是错误的样子(每个“插入”我都会得到其中一个) ERROR 1644: 1644: Error: 试图在 Percentile/Duration/RIT/AccuratePercentile 中插入不正确的值;测试编号:4209 SQL 语句: 插入TestsTestIDSubjectYearSeasonTestStartDateDurationRITStdErrorAccuratePercentile987654342AccuratePercentile987654342AccuratePercentile, ', '读书', '2015', '1. Fall', '10/12/15', '114', '212', '3.4', '93', '')

【问题讨论】:

  • 您在什么平台上使用哪个 MySQL Workbench 版本?如果不是最新的尝试。
  • 我在 Mac 上,我有 MySQL Workbench 6.2 版。说是最新版

标签: mysql excel mysql-workbench sql-insert bulkinsert


【解决方案1】:

您进行导入的方式(通过结果集导入)仅为简单的情况而设计。你不能在那里配置太多,但只需要很少的步骤。

要获得更强大的导入,请尝试相对较新的表导入(使用模式树或表节点上的模式树中的上下文菜单)。这允许导入 CSV + JSON 数据,您可以配置更多详细信息(文件编码、要导入的列、数据类型等)。表导入不使用 INSERT 语句,而是使用 LOAD DATA 命令,因此速度也快得多。

【讨论】:

  • 当我右键单击表格时,我没有看到表格导入选项。关于如何找到它的任何想法?我在 Mac 上,但它说我有最新版本的 MySql Workbench
  • 试用最新版本。始终使用最新版本!
  • 我在 Mac 上,我有 MySQL Workbench 6.2 版。说是最新版
  • 抱歉,应用程序中的更新检查不起作用。只需转到下载页面并获取最新版本 (6.3.5)。
  • 完美。感谢您的帮助!
猜你喜欢
  • 2013-06-23
  • 2016-05-07
  • 2019-03-30
  • 2023-02-20
  • 1970-01-01
  • 2018-12-23
  • 2019-05-11
  • 2018-10-14
  • 1970-01-01
相关资源
最近更新 更多