é possível pesquisar uma tabela inteira do banco de dados (linha e coluna) para descobrir uma sequência específica.
Estou tendo um banco de dados chamado A com cerca de 35 tabelas, preciso pesquisar a sequência chamada "hello" e não sei em qual tabela essa sequência é salva. É possível?
Usando o MySQL
Eu sou um administrador Linux e não estou familiarizado com bancos de dados, seria realmente útil se você puder explicar a consulta também.
Respostas:
Mais: http://winashwin.wordpress.com/2012/08/28/mysql-search/
fonte
Em julho de 2012, escrevi este post
Consulta para encontrar e substituir texto em todas as tabelas e campos de um banco de dados mysql
Ele usa a tabela information_schema.columns para selecionar todos os campos CHAR, VARCHAR e TEXT e executar um texto REPLACE .
Por favor, dê uma olhada no meu link antigo e use seu paradigma para fazer uma pesquisa.
Como exemplo, isso criará um SELECT separado para cada coluna de texto em cada tabela
Crie um arquivo de texto SQL gigante com ele. Em seguida, execute esse script SQL gigante:
A saída informa o banco de dados, a tabela e a coluna em que os dados aparecem.
De uma chance !!!.
EDITAR:
DEVE: adicionar os dois ticks mostrados abaixo para tabelas que possuem um espaço no nome.
fonte
Adotando outra abordagem que não requer a criação de consultas SQL, desenvolvi o CRGREP como uma ferramenta de linha de comando gratuita de código- fonte aberto que grep bancos de dados (incluindo MySQL) e suporta tanto o tipo simples "fred customer.name" procura por "fred" no "nome "coluna da tabela" customer "para uma correspondência mais complexa de padrões, como" fr? d * .author ", para correspondência de padrões em todas as colunas" autor "em todas as tabelas.
fonte
Você pode retornar todas as colunas de todas as tabelas que correspondam aos valores que você está procurando ao mesmo tempo, baseando-se na resposta do RolandoMySQLDBA e usando
PREPARE
eEXECUTE
executando a consulta .fonte
Se você pode usar um bash - aqui está um script: Ele precisa de um usuário dbread com pass dbread no banco de dados.
Se alguém quiser uma explicação: http://infofreund.de/?p=1670
fonte
Se você é administrador do Linux, deve estar familiarizado com a linha de comando, portanto, este seria útil:
Mude
root
/root
para suas credenciais mysql (ou use~/.my.cnf
),db_name
para o nome do seu banco de dados efoo
para o seu texto pesquisado. O parâmetro--skip-extended-insert
formysqldump
exibirá cada consulta em linhas separadas. O parâmetro--color=auto
forgrep
destacará sua string e-w
corresponderá à palavra inteira.fonte
Você tem acesso ao phpMyAdmin? Possui um recurso de pesquisa para cada banco de dados.
ou use o script de sua escolha no resultado de (change dbname):
fonte
Eu me concentro em uma solução de modelo simples para sua pergunta implementada em plsql para banco de dados Oracle , espero personalizá-la no MySql, sendo simples jogar googleing. tudo o que você precisa é investigar o esquema de informações no MySql e substituir algum nome de tabela e colunas.
No script:
ALL_TAB_COLUMNS
é uma tabela de esquema de informações que contém todas as colunas da tabela 'VARCHAR2', 'NVARCHAR2', 'NCHAR', 'CHAR' refere-se aos tipos de coluna de string no Oracle, você deve substituí-los por nomes de tipo equivalentes do MySql% hello% é a palavra-chave de pesquisa, substitua-a por qualquer sequência.
O resultado serão alguns ou muitos scripts sql (com base nos tipos de coluna das tabelas) e a execução deles resultará em sua resposta
Também o desempenho e o consumo de tempo serão outros assuntos.
espero que isso seja útil
fonte
Existe uma boa biblioteca para ler todas as tabelas, ridona
fonte
Use este truque com uma linha de código
nome_da_coluna: digite o nome de todas as colunas em que você pesquisar.
nome_tabela: digite todo o nome da tabela em que você procura.
fonte
Se você estiver usando o MySQL Workbench, clique com o botão direito do mouse no esquema do banco de dados e selecione "Pesquisar dados da tabela ..." e preencha o formulário. Isso pesquisará todo o banco de dados. Quando (ou se) os resultados aparecerem, clique na seta para expandir. Ele mostrará o esquema, a tabela, os dados da chave primária, o nome da coluna e os dados reais que correspondem à sua pesquisa.
Dica: Se nada aparecer, tente ampliar sua pesquisa.
Observe que isso é realmente útil apenas para pesquisar tipos de dados de texto (
char
,varchar
etext
).fonte