2

それぞれ複数のSQLファイルを含むフォルダー構造があります。

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
4

3 に答える 3

1

シェルタイプの正確なコマンドを取得するには調査を行う必要がありますが、大まかに言えば、スクリプトで行う必要があることは次のとおりです。

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
于 2012-12-01T16:35:55.513 に答える
1

ご回答ありがとうございました。ついに入手できました。

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

これが誰かに役立つことを願っています。

よろしく。

于 2012-12-01T17:13:01.083 に答える
0

正確なコマンドではありませんが、このようなものは機能します

for directory in admin user operator
do
  for sql_file in directory/*.sql
  do
     mysql db_name < sql_file.sql
  done
done
于 2012-12-01T16:40:49.273 に答える