bash脚本使用MDB Tools从Access更新MySQL

时间:2015-09-21 14:37:23

标签: 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上向表中添加唯一键,然后删除drop table部分,但它并没有更新表。

1 个答案:

答案 0 :(得分: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