355 Stimmen

Wie prüft man, ob eine mysql-Datenbank existiert?

Ist es möglich zu überprüfen, ob eine (MySQL) Datenbank existiert, nachdem eine Verbindung hergestellt wurde.

Ich weiß, wie ich prüfen kann, ob eine Tabelle in einer DB existiert, aber ich muss prüfen, ob die DB existiert. Wenn nicht, muss ich einen anderen Code aufrufen, um sie zu erstellen und zu füllen.

Ich weiß, das klingt alles etwas unelegant - dies ist eine schnelle und schmutzige Anwendung.

546voto

Kirtan Punkte 20775
SELECT SCHEMA_NAME
  FROM INFORMATION_SCHEMA.SCHEMATA
 WHERE SCHEMA_NAME = 'DBName'

Wenn Sie nur wissen müssen, ob eine Datenbank existiert, damit Sie keine Fehlermeldung erhalten, wenn Sie versuchen, sie zu erstellen, verwenden Sie einfach (From aquí ):

CREATE DATABASE IF NOT EXISTS DBName;

162voto

Ruben Konig Punkte 1461

Eine einfache Möglichkeit zu prüfen, ob eine Datenbank existiert, ist:

SHOW DATABASES LIKE 'dbname';

Wenn die Datenbank mit dem Namen 'dbname' nicht existiert, erhalten Sie eine leere Menge. Wenn sie existiert, erhalten Sie eine Zeile.

24voto

Von der Shell wie bash

if [[ ! -z "`mysql -qfsBe "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME='db'" 2>&1`" ]];
then
  echo "DATABASE ALREADY EXISTS"
else
  echo "DATABASE DOES NOT EXIST"
fi

20voto

TopPot Punkte 257

Wenn Sie nach einem php-Skript suchen, siehe unten.

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
  die('Not connected : ' . mysql_error());
}

// make foo the current db
$db_selected = mysql_select_db('foo', $link);
if (!$db_selected) {
  die ('Cannot use foo : ' . mysql_error());
}

17voto

andiba Punkte 1300

Ein sehr einfacher BASH-Einzelzeiler:

mysqlshow | grep dbname

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X