在我的程序中,我通过从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();
}
答案 0 :(得分:1)
您可以运行此查询:
SELECT COUNT(*)
FROM information_schema.tables
WHERE table_schema = '[database name]'
如果结果为1则存在。
您也可以使用:
SHOW DATABASES LIKE 'dbname';
如果存在,则会得到一行。