mysql - 使用 MDB 工具从 Access 更新 MySQL 的 bash 脚本

标签 mysql bash ms-access mdbtools

我正在尝试制作一个 cronjob 脚本,该脚本将获取 MS Access 数据库 (*.mdb) 中的条目并更新服务器上的 sql 数据库。我找到的脚本删除了表并将它们替换为 mdb 文件中的表。

#!/bin/bash    
TABLES=$(mdb-tables -1 $1)

MUSER="cloyd"
MPASS="******"
MDB="$2"

MYSQL=$(which mysql)

for t in $TABLES
do
    $MYSQL -u $MUSER -p$MPASS $MDB -e "DROP TABLE IF EXISTS $t"
done

mdb-schema $1 mysql | $MYSQL -u $MUSER -p$MPASS $MDB

for t in $TABLES
do
    mdb-export -D '%Y-%m-%d %H:%M:%S' -I mysql $1 $t | $MYSQL -u $MUSER -p$MPASS $MDB
done

我尝试在 ID 上的表中添加唯一键并删除删除表部分,但它只是没有更新表。

最佳答案

我已经弄清楚了。我改用 mysqlimport,它似乎工作得更好。

    #!/bin/bash

    TABLES=$(mdb-tables -1 $1)

    MUSER="cloyd"
    MPASS="************"
    MDB="$2"

    MYSQL=$(which mysql)


    for t in $TABLES
    do
        mdb-export -D '%Y-%m-%d %H:%M:%S' -Q $1 $t > $t.csv
        mysqlimport --fields-terminated-by=, --silent --local --replace --ignore-lines=1 --user=cloyd --password=**** timesystem $t.csv
    done

关于mysql - 使用 MDB 工具从 Access 更新 MySQL 的 bash 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32697984/

相关文章:

linux - bash 脚本按照子目录中的模式重命名并制作副本

bash - shell 脚本对编码和行尾敏感吗?

ms-access - 完成某些字段后,使字段在 MS Access 表单中可见

linux - 使用linux管道输出作为部分输入

VBA 过程仅将选定的 csv 文件(从一个文件夹)导入到 Access 中的单个表中

ms-access - 我的查询的 MS Access 查询未返回字段中具有空值的行

php - 适当的数据结构来维护一对多关系

mysql - SQL查询: how to perform multiple count comparison inside one table

php - PHP 和 MySQL 中的页面模板

php - 获取特定约束的最后插入值