2015-09-21 2 views
0

Я пытаюсь создать сценарий cronjob, который будет принимать записи в базе данных MS Access (* .mdb) и обновлять базу данных SQL на сервере. Сценарий, который я нашел, отбрасывает таблицы и заменяет их теми, что находятся в файле mdb.скрипт bash для обновления MySQL из Access с помощью инструментов 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 

Я попытался добавить уникальные ключи в таблицу на идентификаторах и удалить таблицу падения части, но это просто не было обновление таблицы.

+0

Это сервер mysql или sql? Это НЕ то же самое. –

+0

mysql. Извините, если это путает меня - новый плакат, и он предложил эти теги. – PurpleAnarchist

ответ

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 

 Смежные вопросы

  • Нет связанных вопросов^_^