当我尝试运行时:
LOAD DATA INFILE 'MyFile.txt'
INTO TABLE CLIMATE_DATA
FIELDS TERMINATED BY '|'
LINES TERMINATED BY '\r\n'
(
STATION_ID,
WBAN_ID,
DATE,
MEAN_TEMP,
NUM_OBSERVATIONS_TEMP,
MEAN_DEW_POINT,
NUM_OBSERVATIONS_DEW_POINT,
MEAN_SEA_LEVEL_PRESSURE,
NUM_OBSERVATIONS_SEA_LEVEL_PRESSURE,
MEAN_STATION_PRESSURE,
NUM_OBSERVATIONS_STATION_PRESSURE,
MEAN_VISIBILITY,
NUM_OBSERVATIONS_MEAN_VISIBILITY,
MEAN_WIND_SPEED,
NUM_OBSERVATIONS_WIND_SPEED,
MAX_WIND_SPEED,
MAX_WIND_GUST,
MAX_TEMP,
MAX_TEMP_FLAG,
MIN_TEMP,
MIN_TEMP_FLAG,
TOTAL_PRECIPITATION,
TOTAL_PRECIPITATION_FLAG,
SNOW_DEPTH,
WEATHER_PHENOMENON
)
IGNORE 1 LINES;

我得到:"错误:您的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以获得正确的语法,以便在''''在第3行"
它可以正常使用','。语法似乎是正确的。不确定我做错了什么。
答案 0 :(得分:1)
只是想指出“IGNORE 1 LINES”需要在你的“LINES TERMINATED BY ...”和表格字段“(STATION_ID,......”)之间。 关于你的代码:
LOAD DATA INFILE 'MyFile.txt'
INTO TABLE CLIMATE_DATA
FIELDS TERMINATED BY '|'
LINES TERMINATED BY '\r\n'
IGNORE 1 LINES <<--place ignore here
(
STATION_ID,
WBAN_ID,
DATE,
MEAN_TEMP,
NUM_OBSERVATIONS_TEMP,
MEAN_DEW_POINT,
NUM_OBSERVATIONS_DEW_POINT,
MEAN_SEA_LEVEL_PRESSURE,
NUM_OBSERVATIONS_SEA_LEVEL_PRESSURE,
MEAN_STATION_PRESSURE,
NUM_OBSERVATIONS_STATION_PRESSURE,
MEAN_VISIBILITY,
NUM_OBSERVATIONS_MEAN_VISIBILITY,
MEAN_WIND_SPEED,
NUM_OBSERVATIONS_WIND_SPEED,
MAX_WIND_SPEED,
MAX_WIND_GUST,
MAX_TEMP,
MAX_TEMP_FLAG,
MIN_TEMP,
MIN_TEMP_FLAG,
TOTAL_PRECIPITATION,
TOTAL_PRECIPITATION_FLAG,
SNOW_DEPTH,
WEATHER_PHENOMENON
);
当我运行上述内容时,我收到以下错误:
“ERROR 1064(42000):您的SQL语法出错;请查看与您的MySQL服务器版本对应的手册,以便在第32行”IGNORE 1 LINES“附近使用正确的语法”
我认为你没有在剪贴板中复制完整的错误。
另外,您可能想尝试使用“LOAD DATA LOCAL INFILE”,在登录mysql提示符时,您可能需要使用--local-infile参数,这是一个很好的示例这是在error when I import local data infile
中描述的希望这有帮助。
答案 1 :(得分:0)
如果有人想要使用mysqlimport导入文件并将PIPE作为分隔符。
以这种方式使用命令
mysqlimport --ignore-lines=1 --local -u root -p seo D:\SEO.txt --fields-terminated-by="|"