我有 297 个 sql 文件,我想将它们导入到 mysql 但必须在不同的数据库中。
我试过:
find . -name '*.sql' | awk '{ print "source",$0 }' | mysql -u <db_user> -p --batch -D <database_name>
但它会引发错误,因为 sql 文件包含如下命令:
DROP TABLE IF EXIST <table_name>
所以我需要一个脚本,该脚本必须为每个 sql 文件创建新的数据库。我该怎么做?
答案1
好的,我用我编写的 python 脚本完成了此操作。
import os
for filename in os.listdir('<path_to_folder_contains_sqls>'):
print 'importing db: ' + filename
dbname = 'db_' + str(os.path.splitext(filename)[0])
os.system('mysql -e "create database ' + dbname + '; use ' + dbname + '; source ' + filename + ';"')