2

我有一个包含多个 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
4

3 回答 3

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 回答
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
于 2012-12-01T16:35:55.513 回答
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 回答