检查数据库是否存在的SQL查询是什么?

时间:2014-04-10 05:12:34

标签: mysql sql database

在我的程序中,我通过从TextField读取值来创建一个新数据库。数据库创建成功。但是如果已经存在具有相同名称的数据库,则会导致错误。所以我决定在创建之前检查数据库是否存在。我怎么检查呢?

我知道如何检查数据库中是否存在表。我的代码是 -

        preparedStatement = connect
                .prepareStatement("SELECT count(*)FROM information_schema.tables\n" +
                  "WHERE table_schema = 'project' AND table_name = 'user'");
        rs=preparedStatement.executeQuery();
        rs.next();
        int chk = rs.getInt(1);

        if(chk!=1)
        {
          preparedStatement = connect
                .prepareStatement("create table user (staffname varchar(30) primary key)");
          preparedStatement.executeUpdate();
        }

我是这样做的。所以请告诉我如何以这种方式检查数据库是否存在。

此代码有效吗? -

 preparedStatement = connect
                .prepareStatement("SELECT count(*)FROM information_schema\n" +
                  "WHERE table_schema = "+dbName+"");
        rs=preparedStatement.executeQuery();
        rs.next();
        int chk = rs.getInt(1);

        if(chk!=1)
        {            
        int resultset = statement.executeUpdate("create database " + dbName );

        connect = DriverManager
                .getConnection("jdbc:mysql://localhost:3306/"+dbName+"?"
                        + "user=root&password=virus");
        statement = connect.createStatement();
        }

1 个答案:

答案 0 :(得分:1)

您可以运行此查询:

SELECT COUNT(*)
FROM information_schema.tables 
WHERE table_schema = '[database name]' 

如果结果为1则存在。

您也可以使用:

SHOW DATABASES LIKE 'dbname';

如果存在,则会得到一行。