使用TSQL检查SQL Server上是否存在数据库的理想方法是什么?似乎有多种方法可以实现这一点.
大家好我是jdbc的新手,我想知道是否有办法检查mysql中是否已经存在某个特定的数据库.
假设我想创建一个名为students的数据库,如果学生数据库已经在mysql中创建,eclipse中的错误消息会说明这个学生数据库已经存在.但是我想要做的是创建一个布尔方法来检查学生数据库是否已经存在.如果它存在,那么布尔方法将返回false,否则它是真的然后我可以创建学生数据库.我如何用Java做这些?在jdbc中是否有任何方法可以执行此操作,还是需要从头开始编写代码?谢谢你的帮助.
我遵循了mguymons的建议,这就是我的想法
public boolean checkDBExists(String dbName){
try {
Class.forName(JDBCDriver); //Register JDBC Driver
System.out.println("Creating a connection...");
conn = DriverManager.getConnection(DBURL, USER, PASS); //Open a connection
ResultSet resultSet = conn.getMetaData().getCatalogs();
while (resultSet.next()) {
String databaseName = resultSet.getString(1);
if(databaseName.equals(dbName)){
return true;
}
}
resultSet.close();
}
catch(Exception e){
e.printStackTrace();
}
return false;
}
Run Code Online (Sandbox Code Playgroud) 所以我想编写一个检查数据库的php脚本(在localhost中,user ="root",pass ="")"data1"存在,如果不存在,则创建它.如果你有任何帮助,请感谢你给我这个.
我有一个T-SQL查询,如果它还不存在,它会创建数据库:
IF (NOT EXISTS (SELECT name
FROM master.dbo.sysdatabases
WHERE ('[' + 'DBName' + ']' = 'DBName'
OR name = 'DBName')))
BEGIN
CREATE DATABASE DBName
PRINT 'DATABASE_CREATED'
END
ELSE
PRINT 'DATABASE_EXIST'
Run Code Online (Sandbox Code Playgroud)
当我想在MySQL中使用它时,我收到一个错误:
'IF'在此位置无效输入
我将此脚本更改为
IF(SELECT COUNT(*) FROM SCHEMA_NAME
FROM INFORMATION_SCHEMA.SCHEMATA
WHERE SCHEMA_NAME = 'DBName') > 0)
THEN BEGIN
CREATE DATABASE DBName
PRINT 'DATABASE_CREATED'
ELSE
PRINT 'DATABASE_EXIST'`
Run Code Online (Sandbox Code Playgroud)
但它仍然无效
如何在MySQL中创建此查询?
如果数据库尚不存在,有没有办法创建数据库?
Database.forURL("jdbc:mysql://127.0.0.1/database", driver = "com.mysql.jdbc.Driver", user = "root") withSession {
// create tables, insert data
}
Run Code Online (Sandbox Code Playgroud)
"数据库"不存在,所以我想光滑为我创建它.有任何想法吗?谢谢.
因此,由于 mysqli 预准备语句的复杂性和不规则性,我最近决定切换到 PDO。这是我用来测试数据库的 mysqli 函数:
public static function is_database($database) {
self::connect();
if( mysqli_select_db(self::$conn,$database) ) {
self::$dbname = $database;
return true;
} else {
return false;
}
self::disconnect();
}
Run Code Online (Sandbox Code Playgroud)
到目前为止我读到的关于 PDO 和任何数据库的唯一内容是:
$pdo->exec("use database");
Run Code Online (Sandbox Code Playgroud)
这不是我想要的,除非将它与 try catch 一起使用可以工作。诸如此类的东西
public static function is_database($database){
self::connect();
try {
self::$conn->exec('use '.$database);
return true;
} catch(PDOException $e){
print($e->getMessage();
return false;
die();
}
}
Run Code Online (Sandbox Code Playgroud)
1 小时新 PDO 用户需要一点帮助。感谢您的任何建议。