数据库如果一个一个导入升级文件的话会很慢,效率很低,如何能做到让几十个数据库批量导入,从而达到升级的目的?
请各位高手给予指点

解决方案 »

  1.   

    楼主的意思是一台计算机上的MySQL数据库中的多个数据库吗?
    可以将多个导入文件合并成一个导入文件阿
    只要在各数据库文件内容中间插入
    use 数据库名
    如果要导入的数据库不存在就插入
    Create Database 数据库名
    Use 数据库名
      

  2.   

    导入的文件是升级文件,内容有添加表和修改字段等等,在mysql里的每个数据(如0001,0002)都要执行此升级文件才能达到添加修改表和字段的目的,但是每个数据库都一个个去导入太费时间了,所以想问下如何才能够批量升级
      

  3.   

    不是,有两个升级文件 ,这两个文件要导入所有的数据库,也就是说每个数据库都要导入次这两个文件,
    而不是文件每个导入文件对应一个数据库,也就是说mysql中的所有数据库都要执行次这两个文件,是这样子的
    请问下老师该如何达到此目的
      

  4.   

    一个数据库要执行两个sql文件,有几十个数据库,如果一个个去执行这两个sql文件,会相当费时间,该则么才
    能够批量执行
      

  5.   

    只要执行一个sql文件,然后就是等执行完成阿
    就像我上面说的那样阿
    比如数据库有db1,db2,db3,db4
    你的两个SQL文件如果是这样的
    第一个文件内容是: insert into….xxxx;
    第二个文件内容是: update ….xxxx;
    那就这样写
    use db1;
    insert into….xxxx;
    update ….xxxx;
    use db2
    insert into….xxxx;
    update ….xxxx;
    use db3
    insert into….xxxx;
    update ….xxxx;
    use db4
    insert into….xxxx;
    update ….xxxx;
    也许还有比这更好的方法
    等楼下接着说
      

  6.   

    阿,几十个数据库阿
    看来不能这么写,sql文件太大了
    你可以写个.bat文件
      

  7.   

    写个sql.bat文件,内容如下C:
    cd Program Files\MySQL\MySQL Server 5.0\bin
    mysql < D:\file1.sql -u root -p db1
    mysql < D:\file2.sql -u root -p db1
    yourpassword
    mysql < D:\file1.sql -u root -p db2
    mysql < D:\file2.sql -u root -p db2
    yourpassword
    mysql < D:\file1.sql -u root -p db3
    mysql < D:\file2.sql -u root -p db3
    yourpassword
    mysql < D:\file1.sql -u root -p db4
    mysql < D:\file2.sql -u root -p db4
    exit
      

  8.   

    如果你的数据库名称是用数字递增的方式区分的,可以用EXCEL生成大量的sql语句,然后一次性导入数据库;如果是其他规则,你只能用程序(或者shell)来控制数据库名称的循环遍历。
      

  9.   

    不是递增,只是打个比方,则么把升级文件中的
    ALTER TABLE `CB_SFA_DB_22ad7`.`USER` ADD COLUMN `USER_REG_DATE` VARCHAR(255)
    NOT NULL DEFAULT '' AFTER `MANAGER_FLG`;
    修改为$sql="*********";这种格式?