Tengo 2-3 nombres de columna diferentes que quiero buscar en toda la base de datos y enumerar todas las tablas que tienen esas columnas. ¿Algún guión fácil?
mysql
information-schema
Jobi Joy
fuente
fuente
Respuestas:
Para obtener todas las tablas con columnas
columnA
oColumnB
en la base de datosYourDatabase
:fuente
DATABASE()
lugar de una cadena para buscar en la base de datos seleccionada actualmente.fuente
TABLE_SCHEMA
a los campos del conjunto de retorno para ver todas las bases de datos + tablas que contienen ese nombre de columna.show tables;
. ¿Alguien puede explicar por qué este podría ser el caso?Más simplemente hecho en una línea de SQL:
fuente
fuente
En la versión que no tiene
information_schema
(versiones anteriores o algunas ndb) puede volcar la estructura de la tabla y buscar la columna manualmente.Ahora busque el nombre de la columna
some_file.sql
usando su editor de texto preferido, o use algunos scripts ingeniosos awk.Y un simple script sed para encontrar la columna, simplemente reemplace COLUMN_NAME con el suyo:
Puede canalizar el vertedero directamente en sed, pero eso es trivial.
fuente
Para aquellos que buscan el inverso de esto, es decir, que buscan tablas que no contienen un nombre de columna determinado, aquí está la consulta ...
Esto fue muy útil cuando comenzamos a implementar lentamente el uso de la
ai_col
columna especial de InnoDB y necesitábamos descubrir cuáles de nuestras 200 tablas aún no se habían actualizado.fuente
Si desea " Para obtener todas las tablas solamente ", utilice esta consulta:
Si desea " Para obtener todas las tablas con columnas ", utilice esta consulta:
fuente
Use esta consulta de una línea, reemplace el nombre_columna_de_de_de_superior por el nombre de su columna.
fuente
fuente
El problema con information_schema es que puede ser terriblemente lento. Es más rápido usar los comandos SHOW.
Después de seleccionar la base de datos, primero envía la consulta MOSTRAR TABLAS. Y luego haces SHOW COLUMNS para cada una de las tablas.
En PHP eso se vería algo así
fuente
Eso ^^ obtendrá las tablas con Columna A Y Columna B en lugar de Columna A O Columna B como la respuesta aceptada
fuente