簡體   English   中英

MySQL將CSV字段映射到數據表中的特定字段

[英]MySQL map csv fields to specific fields in datatable

SQL的新手,並嘗試將CS​​V文件加載到我的數據表中,其中CSV中的列不匹配表中的相同順序。 CSV中也沒有PK

為了說明這一點,這是我的CSV和SQL表的摘錄

csv1,csv2,csv3,csv4 ...

sql1(PK),sql2,sql3,sql4,sql5 ...

負載需要這樣

csv1 -> sql2
csv2 -> sql3
csv3 -> sql4

除了使用以下內容來實現我想要的以外,還有其他方法嗎

load data local infile 'xxx'
into table tbl_x
fields terminated by ','
lines terminated by '\r\n'
ignore 4 lines
(@csv1,@csv2,@csv3,@csv4)
set 
sql2 = @csv1,
sql3 = @csv2,
sql4 = @csv3;

您可以將CSV數據加載到臨時表中,然后將數據插入所需的目標表中。

LOAD DATA LOCAL INFILE 'xxx'
INTO TABLE tbl_temp
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n'
IGNORE 4 LINES

然后使用INSERT INTO ... SELECT填充tbl_x

INSERT INTO tbl_x (sql1, sql2, sql3, ...)
SELECT NULL, csv1, csv2, ...
FROM tbl_temp

通過在主鍵列中插入NULL ,MySQL應該自動增加該列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM