是否可以从Microsoft Access数据库创建SQL命令的转储?我希望将这个MDB文件转换为MySQL数据库以便导入,这样我就不必执行CSV步骤。
我希望即使是MSSQL转储文件仍然包含可行的SQL命令,但我对MSSQL一无所知,请让我知道。
发布于 2014-08-10 03:48:37
如果您有权访问安装了mdbtools的linux机器,则可以使用以下Bash shell脚本(另存为mdbconvert.sh):
#!/bin/bash
TABLES=$(mdb-tables -1 $1)
MUSER="root"
MPASS="yourpassword"
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
要调用它,只需像这样调用它:
./mdbconvert.sh accessfile.mdb mysqldatabasename
它将导入所有表和所有数据。
发布于 2015-09-06 20:28:05
我用Nicolay77修改了脚本,将数据库输出到stdout ( unix脚本的常用方法),这样我就可以将数据输出到文本文件或通过管道将其发送到任何我想要的程序。生成的脚本稍微简单一些,并且运行良好。
下面是一些例子:
./mdb_to_mysql.sh database.mdb > data.sql
./mdb_to_mysql.sh database.mdb | mysql destination-db -u user -p
这是修改后的脚本(保存为mdb_to_mysql.sh)
#!/bin/bash
TABLES=$(mdb-tables -1 $1)
for t in $TABLES
do
echo "DROP TABLE IF EXISTS $t;"
done
mdb-schema $1 mysql
for t in $TABLES
do
mdb-export -D '%Y-%m-%d %H:%M:%S' -I mysql $1 $t
done
https://stackoverflow.com/questions/5722544
复制相似问题