MySQL 中的 LOAD DATA INFILE 错误

问题描述 投票:0回答:2

我尝试将 csv 数据导入 mySQL(Windows 7 上的 microsoft slq server 2014)。我使用以下代码

USE [DataAnalytics]
GO

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

DROP TABLE [dbo].[npi_yy]

CREATE TABLE [dbo].[npi_yy](

[NPI] [NUMERIC] (10) NULL,
[Entity Type Code] [NUMERIC] (1) NULL,
[Replacement NPI] [NUMERIC] (10) NULL,
[Employer Identification Number (EIN)] [VARCHAR] (9) NULL,
[Provider Organization Name (Legal Business Name)] [VARCHAR] (70) NULL
) ON [PRIMARY]

GO

SET ANSI_PADDING ON
GO

LOAD DATA INFILE 

    'c:\data\npidata_20050523-20160612_sample2.csv'

INTO TABLE [dbo].[npi_yy]

  FIELDS TERMINATED BY ',' ENCLOSED BY '"'

  LINES TERMINATED BY '\r\n'

  IGNORE 1 LINES;

出现错误:

Msg 102, Level 15, State 1, Line 354
Incorrect syntax near 'INFILE'.

我通过查看空桌子来检查

CREATE TABLE
是否有效。 并通过将文件名放入 explore
 打开它来检查 
c:\data\npidata_20050523-20160612_sample2.csv

是否存在

csv 头:

"NPI","Entity Type Code","Replacement NPI","Employer Identification Number (EIN)","Provider Organization Name (Legal Business Name)"
"1588667638","1","","",""
"1497758544","2","","<UNAVAIL>","CUMBERLAND COUNTY HOSPITAL SYSTEM
"1306849450","1","","",""
"1215930367","1","","",""
"1023011178","2","","<UNAVAIL>","NAPA VALLEY HOSPICE & ADULT DAY SERVICES"

有人知道出了什么问题吗?如有任何帮助,我们将不胜感激。

sql-server import
2个回答
4
投票

除了

LOAD DATA
语句外,您发布的代码适用于 Microsoft SQL Server
LOAD DATA
是特定于 MySQL 的语句。它们是两个不相关的数据库软件,具有不同的语法规则,并且以不同的方式扩展了 SQL 标准。它们不能混合。

LOAD DATA
语句是MySQL提供的标准的扩展。 Microsoft SQL Server 为此提供了
BULK INSERT
语句。

你的代码应该是这样的:

BULK INSERT [dbo].[npi_yy]
FROM 'c:\data\npidata_20050523-20160612_sample2.csv'
WITH (
    FIELDTERMINATOR = ',',
    FIRSTROW = 2,
    ROWTERMINATOR = '\r\n'
)
GO

阅读有关

BULK INSERT
声明的更多信息。


0
投票

完成此操作的快速方法是;

  • 通过重命名文件扩展名将 csv 文件更改为 txt 文件,并将其命名为 data.txt 并将其放在“下载”文件夹中。

  • 转到 Microsoft SQL Server Studio 并创建一个表并将其命名为 DataTable。

  • 使用管理权限打开您的CMD

  • 输入下面的行;

    C:\Users senk\Downloads>data.txt 中的 bcp 数据表 -S ServerIP_here -d DataBaseName_here -U 用户名_here -P 密码_here -q -c -t ","

就是这样

© www.soinside.com 2019 - 2024. All rights reserved.