mysql - 将具有空值的 csv 文件导入 phpmyadmin

标签 mysql sql csv

当我将 csv 文件导入 MySQL (phpmyadmin) 时,对于所有未在文件中指定但默认为 null 的整数值,会出现一条错误消息:#1366 - 不正确的整数值:''对于第 1 行的“id”列。。我有这些问题:

一个。如果数据库表的 ID 定义为自动递增,我该如何导入没有指定行 ID 的 csv 文件?

在 csv 文件或 phpmyadmin 中的表列规范中,对于默认为 null 的整数列,我需要什么?

这是 csv 文件中的示例行。

id,year,month,date,day,description,ranking
,,3,1,,,
,,3,2,,,
,,3,3,,,
,,3,4,,,
,,3,5,,,
,,3,6,,,
,,3,7,,,
,,3,7,,"Saints Perpetua and Felicity, Martyrs",
,,3,8,,,
,,3,8,,"Saint John of God, Religious",
,,3,9,,,
,,3,9,,"Saint Frances of Rome, Religious",
,,3,10,,,

导致错误的列是id,year,ranking。它们都是整数列。列 id 是自动递增的。其他列是 INT(11),默认值为 NULL。谢谢。

最佳答案

CSV 没有“空值”的概念。不可能区分空字段和具有合法空值(例如空字符串)的字段。在查询插入之前,您必须在加载行时对其进行按摩,以用适当的 NULL 替换任何“空字符串”

例如

$row = fgetcsv(...);
$row[0] = 'NULL';

关于mysql - 将具有空值的 csv 文件导入 phpmyadmin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9282154/

相关文章:

php - 加载数据到文件时 id 自动递增

php - Laravel 从查询构建器获取特定列

sql - 表达式不在GROUP BY键中

python - 我的 CSV 编写器代码在字符之间写入分隔符而不是字符串

Java CSV 读取器/写入器问题

MySql x 行与 x-1 相似列,合并最后一列

mysql - 使用 Helm 安装的 Kafka/Confluent 的连接器

php - 使用我们的自定义类扩展 Yii 框架 CHtml 帮助器类

SQL 查询 - 检查日期是否为休息日

html - 如何使用 native powershell 命令从 html 文件中提取特定表格?