É possível verificar se existe um banco de dados (MySQL) após a conexão.
Eu sei como verificar se existe uma tabela em um banco de dados, mas preciso verificar se o banco de dados existe. Caso contrário, tenho que chamar outro pedaço de código para criá-lo e preenchê-lo.
Eu sei que tudo isso parece um pouco deselegante - este é um aplicativo rápido e sujo.
Uma maneira simples de verificar se existe um banco de dados é:
Se o banco de dados com o nome 'dbname' não existir, você receberá um conjunto vazio. Se existir, você recebe uma linha.
fonte
Se você está procurando um script php, veja abaixo.
fonte
A partir do shell como bash
fonte
Aqui está uma função bash para verificar se existe um banco de dados:
Outra alternativa é apenas tentar usar o banco de dados. Observe que isso também verifica a permissão:
fonte
>/dev/null
garante que o resultado seja sempre nulo. Tente algo parecidoif [ -z "$(mysql ${db} 2>&1 </dev/null)" ]; then ...
.>/dev/null
não altera o código de saída de execuçãomysql
. Apenas oculta a saída se houver um erro. Aif ...; then
peça verifica o código de saída.Uma ótima maneira de verificar se existe um banco de dados no PHP é:
Esse é o método que eu sempre uso.
fonte
Um BASH-one-liner muito simples:
fonte
fonte
fonte
Para quem usa php com mysqli, então esta é a minha solução. Eu sei que a resposta já foi respondida, mas achei que seria útil ter a resposta como uma declaração preparada para o mysqli também.
fonte
Usando o bash:
fonte
Por muito tempo e complicado (mas tenha paciência comigo!), Aqui está um sistema de classe que fiz para verificar se existe um banco de dados e também para criar as tabelas necessárias:
Neste você pode substituir o nome do banco de dados
en
por qualquer nome de banco de dados que desejar e também alterar o script do criador para qualquer coisa e (espero!) Não o quebrará. Se alguém puder melhorar isso, me avise!Nota
Se você não usar o Visual Studio com ferramentas PHP, não se preocupe com as regiões, elas são para dobrar códigos: P
fonte
Com esse script, é possível obter o banco de dados Sim ou Não, caso ele não exista, não gera Exceção.
fonte
Código Rails:
=> entos_development existe, entos_development1 não existe
fonte
Se você estiver usando o MSSQL em vez do MySQL, consulte esta resposta em um thread semelhante .
fonte
Estou usando simplesmente a seguinte consulta:
Depois verifique se o resultado é FALSO. Caso contrário, pode haver um erro de acesso negado, mas não sei. Portanto, no caso de privilégios envolvidos, pode-se usar:
como já mencionado anteriormente.
fonte
Aqui está a minha maneira de fazê-lo dentro de um script bash:
fonte
A seguinte solução funcionou para mim:
fonte
Outra solução php, mas com DOP:
fonte
Solução Golang
fonte
Tenha cuidado ao verificar a existência com uma declaração like!
Se em uma série de eventos infelizes sua variável acaba vazia, e você acaba executando isso:
Ele retornará TODOS os bancos de dados, informando ao script de chamada que ele existe desde que algumas linhas foram retornadas.
É uma prática muito mais segura e melhor usar um sinal de igual "=" para testar a existência.
A maneira correta e segura de testar a existência deve ser:
Observe que você precisa agrupar o banco de dados de nomes de colunas com reticulares; nesse caso, não é possível usar sintaxe relaxada.
Dessa forma, se o código que cria a variável 'xxxxx' retornar em branco, o SHOW DATABASES não retornará TODOS os bancos de dados, mas retornará um conjunto vazio.
fonte