繁体   English   中英

将CSV导入到SQL Bash

[英]Import csv to sql bash

我试图编写一个bash脚本来删除数据库中的所有表,然后将所有csv文件导入给定目录中。 我有几个问题:

  1. 使用脚本导入1个csv会出现以下错误:

     ERROR 1064 (42000) at line 2: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'BULK INSERT paf_addresses FROM '../sql/paf-sample.csv' WITH ( FIELDTERMINATOR = ' at line 1 
  2. 如何告诉mysql部分为设置目录中的每个文件运行


我的脚本在下面。

#!/bin/bash

detail="propertystork"
AWK=$(which awk)
GREP=$(which grep)

TABLES=$(mysql -u $detail -p$detail $detail -e 'show tables' | $AWK '{ print $1}' | $GREP -v '^Tables' )

for t in $TABLES
do
  mysql -u $detail -p$detail $detail -e "drop table $t"
done

mysql -u $detail -p$detail -h localhost $detail <<-_END-OF-SCRIPT_

BULK
INSERT paf_addresses
FROM '../sql/paf-sample.csv'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
GO
_END-OF-SCRIPT_

该错误是由于MySQL中没有BULK INSERT语句而引起的。

而是有LOAD DATA INFILE

LOAD DATA INFILE '../sql/paf-sample.csv'
INTO table_name
  FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
  LINES TERMINATED BY '\n'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM