2012-12-01 26 views
2

我有一個包含多個SQL文件的文件夾結構。在位於文件夾樹中的MySQL中運行多個SQL文件

我想知道如何從shell大量運行MySQL的所有源文件。我使用Ubuntu。

歡迎任何建議。謝謝。

sql 
    admin 
     adm_a.sql 
     adm_b.sql 
     adm_c.sql 
    user 
     usr_new.sql 
     usr_upd.sql 
    operator 
     opr_ctrl.sql 
     opr_migrate.sql 

回答

1

謝謝大家的迴應,我終於可以得到:

for i in `find . -name "*.sql"`; 
do mysql -e "source `expr ${i:2}`" -u MyUser -pMyPassword MyDataBase; 
done 

我希望這會爲某人服務。

問候。

1

你需要做的研究,以獲得你的shell類型的確切命令,但在一個高層次的,你需要在你的腳本來做到這一點的:

connect to mysql (with username/password) 
for subfolder in `sql`: 
    sql_files = list(*.sql) 
    for sql_file in sql_files: 
     pipe sql_file to mysql db 
+0

非常感謝您的貢獻。 – alditis

0

不準確的命令,但這樣的事會工作

for directory in admin user operator 
do 
    for sql_file in directory/*.sql 
    do 
    mysql db_name < sql_file.sql 
    done 
done 
+0

非常感謝您的貢獻。 – alditis

相關問題