null值不会插入到sql表中

68bkxrlz  于 2021-08-13  发布在  Java
关注(0)|答案(1)|浏览(358)

我有一个csv文件,有三列“movieid”、“imdbid”、“tmdbid”。列“tmdbid”包含多个空行。(movieid是引用另一个表中主键的froeign键)
当我将这个Dataframe读入r时,空行被视为na值。如果我使用下面的命令将这个csv文件导入mysql db,那么带有na值的行不会被插入表中,即使我允许空值。我还应该提到,我没有得到任何错误。
除了下面的命令之外,我还尝试使用mysql workbench导入数据集,但是没有成功。
有什么建议吗?

LOAD DATA LOCAL INFILE 'links.csv' INTO TABLE links
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\n'
IGNORE 1 LINES
(movieId, imdbId, tmdbId);

我知道null和na值不一样,但我不明白为什么r将空行视为na。我试图用null替换na,但r不支持此操作。
table

CREATE TABLE links ( 
    movieId int NOT NULL, 
    imdbId int DEFAULT NULL, 
    tmdbId int DEFAULT NULL, 
    KEY movieId (movieId), 
    CONSTRAINT links_ibfk_1 FOREIGN KEY (movieId) REFERENCES movieId_title (movieId) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

csv文件如下所示:在此处输入图像描述
下面是第三列的空行示例:在此处输入图像描述

46scxncf

46scxncf1#

正如@alec所建议的,你可以这样做 set foreign_key_checks = 0 . 然后,可以使用以下命令将零替换为null:

UPDATE table_name
SET col_name= NULL 
WHERE  col_name  = 0;

相关问题