if (DB_A) 
   mysql -hxxxxA  -uroot -pxxx   -e  "create TB_A"
else if (DB_B)
   mysql -hxxxxB  -uroot -pxxx   -e  "create TB_B"
else if (DB_C)
   mysql -hxxxxC  -uroot -pxxx   -e  "create TB_C"
end if

解决方案 »

  1.   

    SELECT DATABASE();
    可以返回当前数据库名
      

  2.   

    if (DB_A) 
       mysql -hxxxxA  -uroot -pxxx   -e  "create DB_A.TB_A"
    else if (DB_B)
       mysql -hxxxxB  -uroot -pxxx   -e  "create DB_B.TB_B"
    else if (DB_C)
       mysql -hxxxxC  -uroot -pxxx   -e  "create DB_C.TB_C"
    end if
      

  3.   

    rucypli的方法好像是一个bat文件吧。wwwwb的方法是mysql的方法吧
    怎么才能把mysql的结果传递给bat呢?
    我现在的问题,就是不知道运行脚本时,是在哪个数据库上。
    如果完全在mysql里写,很容易得到是哪个数据库,
    select schema_name into @dbName from information_schema.schemata where schema_name in('DB_A','DB_B', 'DB_C')
    但mysql里,不支持if(@dbName = 'DB_A') , 所以就不会做了。虽然mysql -hxxxxB  -uroot -pxxx   -e  "create DB_B.TB_B"也可以实现,但如果不是在正确的数据库上,就会返回error,log中能体现出来。功能实现了,毕竟不完美。焦点问题,怎么在bat中判断是哪一个数据库。估计在mysql中,使用if的方法,没有希望了
      

  4.   

    解决了。
    这样玩,玩死人了
    set mysqlExec=select schema_name into @dbName from information_schema.schemata where schema_name in('DB_A','DB_B', 'DB_C')
    做一次set,是因为这里面有'了
    for /F %i in ('%mysqlprg% ^| find /C "DB_A" ') do set dbExist=%i
    如果有这个数据库,dbExist就是1,否则就是0
    if %dbExist%==1 create table
    大功告成!
      

  5.   

    在批处理运行,和在dos提示符下不一样,批处理里面,可以不用set,直接写到for里面就行了