当前位置: 首页 > 面试题库 >

在MySQL中导入CSV数据时,空整数字段的默认值

宇文修文
2023-03-14
问题内容

我正在使用将CSV导入MySQL表LOAD DATA INFILE。表格的字段之一存储着我在表格结构中定义的邮政编码数据contributor_zipcode INT

在CSV中,此字段有时为空。当我执行LOAD查询时,MySQL将发出如下警告:

Incorrect integer value: '' for column 'contributor_zipcode' at row 180

我尝试将字段重新定义为contributor_zipcode INT DEFAULT '0',这会创建相同的警告,而contributor_zipcode INT DEFAULT NULLMySQL不允许。有什么建议吗?


问题答案:

空值被解释为空字符串(’‘),而不是NULL,因此未使用默认值。

如果要显式控制这些空字符串的处理,最好的办法是将它们加载到用户变量中,然后使用该用户变量有条件地设置该列。

您可以使用它来将值设置为所需的任何值(NULL,0等)。

这是一个示例,假设您要将其设置为0:

LOAD DATA INFILE '...'
INTO TABLE your_table
FIELDS TERMINATED BY ','
(column_one,..., @contributor_zipcode,..., column_n)
SET contributor_zipcode = IF(@contributor_zipcode='',0,@contributor_zipcode);


 类似资料:
  • 问题内容: 尝试从CSV导入数据时遇到了一些问题,但还有一些问题,我还没有解决。 首先,这是我的代码,可以帮助您更好地了解事物(将其整理一些,删除CSS和DB连接): 从本质上讲,这是我对各种方法进行多次尝试后发现的示例的改编。 我的CSV有两列数据,第一列是文本,第二列是整数数据库中的表也有两列,第一列称为“文本”,第二列为“数字” 所以我的问题是: 正在上传的文本只是在每个字段中显示为0,我不

  • 问题内容: 我有以下结构的csv文件: 使用以下MySQL函数如何导入MySQL表的第一和第三列: 我为我的英语道歉! 提前致谢 ! 问题答案: 您可以指定列,并将不需要的列标记为“ @dummy”。 替换,并且只要你喜欢。要设置不在数据文件中的其他列,您可以这样做: 作为进一步的参考,我建议您看一下MySQL参考。

  • 本文向大家介绍如何在MySQL ENUM数据类型中插入默认值?,包括了如何在MySQL ENUM数据类型中插入默认值?的使用技巧和注意事项,需要的朋友参考一下 我们可以借助ENUM数据类型的DEFAULT属性来实现。如果未指定值,则DEFAULT属性会使ENUM数据类型具有默认值。换句话说,我们可以说INSERT语句不必为此字段包含值,因为如果不包含该值,那么将插入DEFAULT之后的值。DEFA

  • 问题内容: 这个问题已经在这里有了答案 : mysql错误1364字段没有默认值 (15个答案) 3年前关闭。 最近,我将MySQL数据库移到了新服务器上,这给了我以前在MySQL上遇到的一些问题。我的表列设置为“默认=>无”,并且我的表已根据数据类型生成默认值。但是现在当我尝试插入表中时,出现以下错误消息:“#1364-字段’column_name’没有默认值”,然后没有任何内容插入表中。 我该

  • 问题内容: 我试图通过在管理员内部调整modelform来将csv文件导入数据库: models.py: Forms.py: Admin.py: 但是我一直试图导入我在“ file_to_import”字段中放入的文件。在Forms.py中获取AttributeError:’function’对象没有属性’FILES’。 问题答案: 经过长时间的搜索,我找到了答案:使用标准表单在管理员内部创建视图

  • 问题内容: 因此,这似乎很简单,我发誓我以前做过,但是出于某种原因,它对我不起作用。 我正在使用并有一个包含约200列的表,如果要向其中插入NULL或空数据,我希望其中约20列默认为0。 这是一个小例子,说明我的表的外观以及我要默认设置为0的列所执行的操作。 因此请注意,我将其设置为问题是,当将空数据传递给它时,出现SQL错误。 我也尝试过将NULL DEFAULT‘0’设置为空,但是当传递空数据