【问题标题】:Bash script to import the multiple CSV files into a mysql database using load data local infile command使用 load data local infile 命令将多个 CSV 文件导入 mysql 数据库的 Bash 脚本
【发布时间】:2023-02-14 11:46:58
【问题描述】:
  1. 我有多个 CSV 文件存储在其中一个文件夹中,然后我需要使用这些文件夹来获取 csv 文件,然后将它们加载到数据库表中。

  2. 这个脚本需要准备在狂欢使用 InputFolderPath(循环 Csv 文件)、DatabaseConnection、SchemaName、TableName 等参数化字段,然后使用传递这些字段

    加载数据本地文件命令。

【问题讨论】:

  • 这不是免费的代码编写服务。这是关于帮助。到目前为止,请显示您的表架构、示例数据以及您的脚本和查询

标签: sql linux bash mysql-workbench


【解决方案1】:

这对我有用,我知道在命令行上使用密码是不好的,但我不知道如何以任何其他方式做到这一点……仍在寻找干净的解决方案。

for f in /var/www/path_to_your_folder/*.csv
do
    mysql -e "use database_name" -e "
        load data local infile '"$f"' into table your_table_name FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '"' LINES TERMINATED BY '
' IGNORE 1 LINES (column_name1, @date_time_variable1, column_name3)
SET some_column_name_which_contains_date = STR_TO_DATE(@date_time_variable1, '%d-%m-%Y');" -u your_mysql_username_here --password=your_mysql_password_here --local-infile=1

    echo "Done: '"$f"' at $(date)"

done

我正在使用 ec2 + ubuntu

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-25
    • 2011-05-28
    • 2021-08-29
    • 2021-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多