2010-09-08 160 views
1

我想确定某个特定名称的数据库是否存在,然后如果它没有创建它。理想情况下,这将在VBScript中。我目前正在尝试使用数组的循环搜索,但数据库的总数会发生很大变化。MySQL检查数据库是否存在

set dbQuery = ConnSQL.execute(checkDBsql) 
      if dbQuery.BOF and dbQuery.EOF then ' Query didn't return any records. 
       ConnSQL.execute(MakeDb) 
      else 
       dbQuery.MoveFirst 
       i = 0 
       Do While Not dbQuery.EOF 
        i = i + 1 
       loop 
      end if 
    set dbQuery = ConnSQL.execute(checkDBsql) 
      if dbQuery.BOF and dbQuery.EOF then ' Query didn't return any records. 
       msgBox "ERROR!" 
      else 
       e = 0 
       do while not dbQuery.EOF 
        DBName(e) = dbQuery("Database") 
        e = e + 1 
       loop     
       For a = 1 to UBound(DBName) 
        If DBName(a) = OldDBName Then 
         MsgBox DBName(a) 
        end if 
       Next 
    connSQL.close 

回答

4

尝试:

SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'DBName' 

如果不存在,你会得到一个空的结果集。

如果你需要知道,如果一个数据库存在试图创造它时避免的错误:

CREATE DATABASE IF NOT EXISTS <name>; 
+0

模式给了一个错误,但该信息,如果不存在部分的创建数据库是什么,我要怎样做。我一定错过了。 – MrGrant 2010-09-08 22:45:20

0

,如果你能在一个MySQL命令行客户端连接到服务器

show databases 

会告诉你在MySQL数据库。

0

的最快方法是问题:

show databases; 
相关问题