如何在 MySQL 中导入使用“NULL”关键字编码的日期时间字段?
How to import datetime field coded with `NULL` keyword in MySQL?
我有一个table如下图
请注意,我已经提到过这个 并且它不是重复的
当我尝试使用 MySQL workbench 上传 csv 文件中的数据时,我发现它忽略了 rows with NULL values for datetime field
。这意味着它只复制第 2,4 和 5 行
请在下面找到错误信息
- Row import failed with error: ("Incorrect datetime value: '' for column 'Date_entry' at row 1", 1292)
请注意Date_entry
是一个索引列
alter table dummy
add index ADMISSIONS_IDX01 (Subject),
add index ADMISSIONS_IDX02 (Date_entry);
Table定义是这样的:
Subject MEDIUMINT UNSIGNED NOT NULL,
Date_entry DATETIME,
在创建语句中,我有一行如下所示
Date_entry= IF(@Date_entry='', NULL, @Date_entry),
你能帮我解决这个错误吗?
CREATE TABLE dummy (
Subject MEDIUMINT UNSIGNED NOT NULL,
Date_entry DATETIME NULL DEFAULT NULL,
)
在MySQL版本>=8.0中默认[=11=]是off
。要加载,您需要先启用它。
set global local_infile = on;
load data local infile 'E:so.csv' into table dummy
fields terminated by ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(Subject,@Date_entry)
set Date_entry=if(@Date_entry='',null, @Date_entry) ;
它将插入数据。如果它抛出错误然后分享 sql_mode
.
的结果
select @@sql_mode;
注意: 确保 Date_entry
列上的 csv 格式与 MySQL 一样,顺便说一句,在你的 csv 中是不是数据库格式。我已经在 MySQL Workbench.
中测试了上述情况
我有一个table如下图
请注意,我已经提到过这个
当我尝试使用 MySQL workbench 上传 csv 文件中的数据时,我发现它忽略了 rows with NULL values for datetime field
。这意味着它只复制第 2,4 和 5 行
请在下面找到错误信息
- Row import failed with error: ("Incorrect datetime value: '' for column 'Date_entry' at row 1", 1292)
请注意Date_entry
是一个索引列
alter table dummy
add index ADMISSIONS_IDX01 (Subject),
add index ADMISSIONS_IDX02 (Date_entry);
Table定义是这样的:
Subject MEDIUMINT UNSIGNED NOT NULL,
Date_entry DATETIME,
在创建语句中,我有一行如下所示
Date_entry= IF(@Date_entry='', NULL, @Date_entry),
你能帮我解决这个错误吗?
CREATE TABLE dummy (
Subject MEDIUMINT UNSIGNED NOT NULL,
Date_entry DATETIME NULL DEFAULT NULL,
)
在MySQL版本>=8.0中默认[=11=]是off
。要加载,您需要先启用它。
set global local_infile = on;
load data local infile 'E:so.csv' into table dummy
fields terminated by ','
ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES
(Subject,@Date_entry)
set Date_entry=if(@Date_entry='',null, @Date_entry) ;
它将插入数据。如果它抛出错误然后分享 sql_mode
.
select @@sql_mode;
注意: 确保 Date_entry
列上的 csv 格式与 MySQL 一样,顺便说一句,在你的 csv 中是不是数据库格式。我已经在 MySQL Workbench.