SQL导入CSV至tripsdata表报错:data附近语法错误的排查与解决
错误原因
你用的是PostgreSQL数据库,但写的是MySQL专属的LOAD DATA INFILE导入语句,PostgreSQL不支持这个命令,所以才会报语法错误。
修正方案
PostgreSQL用COPY命令来导入CSV数据,根据文件存放位置分两种写法:
本地客户端文件导入
如果tripsdata.csv在你自己的电脑上,用psql客户端的\copy命令:\copy tripsdata FROM 'tripsdata.csv' WITH (FORMAT csv, DELIMITER ',', QUOTE '"', HEADER);其中
HEADER参数用来跳过首行表头,对应你原语句里的IGNORE 1 ROWS;QUOTE '"'对应原语句的ENCLOSED BY '"'。服务器端文件导入
如果文件在PostgreSQL服务器的文件系统里,用服务器端的COPY命令(需要超级用户权限):COPY tripsdata FROM '/实际文件路径/tripsdata.csv' WITH (FORMAT csv, DELIMITER ',', QUOTE '"', HEADER);记得把
/实际文件路径/换成文件在服务器上的真实路径,还要保证PostgreSQL进程能读取这个文件。
内容的提问来源于stack exchange,提问作者Hanisha Dua
相关产品推荐
相关产品推荐

