通过 BULK INSERT 或 LOAD DATA 将 CSV 文件导入数据库 (sql)
Import CSV file into database(sql) via BULK INSERT or LOAD DATA
想要将一些数据插入 SQL。我正在使用 cfquery 标签来操作 SQL 查询。
这是我的第一次尝试:
<body>
<cfquery NAME="Insert" DATASOURCE="#app.dsn#">
LOAD DATA INFILE "F:\app\new.csv"
INTO TABLE FROM CSVIMP
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n';
</cfquery>
<output>
<CFQUERY NAME="Show" DATASOURCE="#app.dsn#">
SELECT * FROM CSVIMP
</CFQUERY>
#Show#
</output>
</body>
因为这不起作用,所以我用 BULK INSERT 试了一下。
我的第二次尝试:
<body>
<cfquery NAME="Insert" DATASOURCE="#app.dsn#">
BULK INSERT CSVIMP FROM ‘F:\app\new.csv’
WITH (FIRSTROW = 2, FIELDTERMINATOR = ‘,’, ROWTERMINATOR = ‘\n’)
</cfquery>
<output>
<CFQUERY NAME="Show" DATASOURCE="#app.dsn#">
SELECT * FROM CSVIMP
</CFQUERY>
#Show#
</output>
</body>
但即使这样也行不通。
它没有给我任何类型的错误,只是来自 csv 的值没有插入 MySQL.
CSV 是这样的:
new.csv:
Test,Test2
Test3,Test4
我做错了什么?
我只需要将它放在一个循环中。
<cfloop query="csv_query">
<cfquery datasource="#app.dsn#">
INSERT INTO CSVIMP (
Test1,
Test2
) VALUES (
'#csv_query.column_1#',
'#csv_query.column_2#'
)
</cfquery>
</cfloop>
想要将一些数据插入 SQL。我正在使用 cfquery 标签来操作 SQL 查询。
这是我的第一次尝试:
<body>
<cfquery NAME="Insert" DATASOURCE="#app.dsn#">
LOAD DATA INFILE "F:\app\new.csv"
INTO TABLE FROM CSVIMP
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\r\n';
</cfquery>
<output>
<CFQUERY NAME="Show" DATASOURCE="#app.dsn#">
SELECT * FROM CSVIMP
</CFQUERY>
#Show#
</output>
</body>
因为这不起作用,所以我用 BULK INSERT 试了一下。
我的第二次尝试:
<body>
<cfquery NAME="Insert" DATASOURCE="#app.dsn#">
BULK INSERT CSVIMP FROM ‘F:\app\new.csv’
WITH (FIRSTROW = 2, FIELDTERMINATOR = ‘,’, ROWTERMINATOR = ‘\n’)
</cfquery>
<output>
<CFQUERY NAME="Show" DATASOURCE="#app.dsn#">
SELECT * FROM CSVIMP
</CFQUERY>
#Show#
</output>
</body>
但即使这样也行不通。 它没有给我任何类型的错误,只是来自 csv 的值没有插入 MySQL.
CSV 是这样的:
new.csv:
Test,Test2
Test3,Test4
我做错了什么?
我只需要将它放在一个循环中。
<cfloop query="csv_query">
<cfquery datasource="#app.dsn#">
INSERT INTO CSVIMP (
Test1,
Test2
) VALUES (
'#csv_query.column_1#',
'#csv_query.column_2#'
)
</cfquery>
</cfloop>