Est-il possible de vérifier si une base de données (MySQL) existe après avoir établi une connexion.
Je sais comment vérifier si une table existe dans une base de données, mais je dois vérifier si la base de données existe. Sinon, je dois appeler un autre morceau de code pour le créer et le remplir.
Je sais que tout cela semble quelque peu inélégant - c'est une application rapide et sale.
Un moyen simple de vérifier si une base de données existe est:
Si la base de données portant le nom «dbname» n'existe pas, vous obtenez un ensemble vide. S'il existe, vous obtenez une ligne.
la source
Si vous cherchez un script php voir ci-dessous.
la source
De la coquille comme bash
la source
Voici une fonction bash pour vérifier si une base de données existe:
Une autre alternative consiste à simplement essayer d'utiliser la base de données. Notez que cela vérifie également l'autorisation:
la source
>/dev/null
garantit que le résultat est toujours nul. Essayez quelque chose commeif [ -z "$(mysql ${db} 2>&1 </dev/null)" ]; then ...
.>/dev/null
ne change pas le code de sortie de l'exécutionmysql
. Il masque simplement la sortie en cas d'erreur. Laif ...; then
pièce vérifie le code de sortie.Un excellent moyen de vérifier si une base de données existe en PHP est:
C'est la méthode que j'utilise toujours.
la source
Un BASH-one-liner très simple:
la source
la source
la source
Pour ceux qui utilisent php avec mysqli, voici ma solution. Je sais que la réponse a déjà été répondue, mais j'ai pensé qu'il serait utile d'avoir la réponse en tant que déclaration préparée par mysqli aussi.
la source
Utilisation de bash:
la source
Longue haleine et alambiquée (mais restez avec moi!), Voici un système de classe que j'ai fait pour vérifier si une DB existe et aussi pour créer les tables nécessaires:
En cela, vous pouvez remplacer le nom de la base de données
en
par n'importe quel nom de base de données que vous aimez et également changer le script du créateur en n'importe quoi et (espérons-le!) Il ne le cassera pas. Si quelqu'un peut améliorer cela, faites le moi savoir!Remarque
Si vous n'utilisez pas Visual Studio avec des outils PHP, ne vous inquiétez pas pour les régions, ce sont elles pour le pliage de code: P
la source
Avec ce script, vous pouvez obtenir une base de données Oui ou Non, au cas où elle n’existerait pas, elle ne lèverait pas d’exception.
la source
Code Rails:
=> entos_development existe, entos_development1 n'existe pas
la source
Si vous utilisez MSSQL au lieu de MySQL, consultez cette réponse à partir d'un fil similaire .
la source
J'utilise simplement la requête suivante:
Vérifiez ensuite si le résultat est FAUX. Sinon, il pourrait y avoir une erreur d'accès refusé, mais je ne peux pas le savoir. Ainsi, en cas de privilèges impliqués, on peut utiliser:
comme déjà mentionné précédemment.
la source
Voici ma façon de le faire dans un script bash:
la source
La solution suivante a fonctionné pour moi:
la source
Une autre solution php, mais avec PDO:
la source
Solution de Golang
la source
Soyez prudent lorsque vous vérifiez l'existence avec une déclaration similaire!
Si dans une série d'événements malheureux votre variable finit par être vide, et vous finissez par exécuter ceci:
Il renverra TOUTES les bases de données, indiquant ainsi au script appelant qu'il existe puisque certaines lignes ont été renvoyées.
Il est beaucoup plus sûr et préférable d'utiliser un signe égal "=" pour tester l'existence.
La manière correcte et sûre de tester l'existence devrait être:
Notez que vous devez encapsuler la base de données de noms de colonnes avec des astuces, elle ne peut pas utiliser une syntaxe détendue dans ce cas.
De cette façon, si le code créant la variable 'xxxxx' est retourné vide, alors SHOW DATABASES ne renverra pas TOUTES les bases de données, mais renverra un ensemble vide.
la source