2010-02-08 11 views
13

¿Cómo hago para listar todas las tablas que contienen un nombre de columna dado? Estoy usando la versión de Mysql 4.1.13-nt-log. Sé que las versiones de menos de 5 no tienen un DB de información_scheme.Enumere todas las tablas que contienen un nombre de columna dado

+0

una contra-pregunta: ¿por qué necesita eso? :) – Bozho

+1

Si realmente quiere hacerlo, puede mostrar los resultados de SHOW TABLES y SHOW COLUMNS FROM en un archivo de texto en la línea de comandos, luego use Perl y grep para buscar – Yada

Respuesta

0

intente esto:

mysqldump -u root -p –all-databases –single-transaction > all.sql 

y entonces el buscar la manera de la vieja escuela en un editor de texto con


encontrar también encontró esto ... parece prometedor, pero no estoy seguro de lo ambicioso que eres

http://mike.kruckenberg.com/presentations/Creating_INFORMATION_SCHEMA.pdf

+0

Una solución sencilla y sencilla, pero le sugiero que utilice los datos sin datos opción, ya que lo único que le importa es el esquema ... –

29

Buscar todas las tablas y columnas, donde los nombres de columna son como palabra clave:

SELECT DISTINCT TABLE_NAME, COLUMN_NAME 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE COLUMN_NAME LIKE '%partial_column_name%' 
    AND TABLE_SCHEMA='YourDatabase'; 
+1

El OP fue bastante específico acerca de NO usar information_schema, esto no responde la pregunta. – buc

+1

+ 1 porque era lo que estaba buscando al buscar. – PeteGO

+0

+1 por la misma razón: resolvió mi problema particular y me ahorró montones de tiempo. – Redboots

-2
select table_name,column_name,data_type,data_length 
from user_tab_columns 
where column_name LIKE 'WHATEVER_U_WANT' 
; 
0

mucho más fácilmente

SELECT DISTINCT TABLE_NAME FROM your_schema.columns WHERE column_name = 'your_column_name'; 
Cuestiones relacionadas