bash 脚本来更新 MySQL 从使用 MDB 工具访问

标签: MySQL
发布时间: 2017/1/9 21:48:29
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我试图使一个 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 的表中添加唯一键,删除滴表部分,但它只不更新的表。

解决方法 1:

我已经找到它了。相反我使用 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
赞助商