[英]MySQL map csv fields to specific fields in datatable
SQL的新手,並嘗試將CSV文件加載到我的數據表中,其中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.