una tabla por mostrar lista ingresar entrar desde datos crear contenido consola como comandos campos borrar mysql information-schema

por - mostrar campos de una tabla mysql



¿Cómo encontrar todas las tablas en MySQL con nombres de columna específicos en ellas? (9)

En la versión que no tiene el esquema de information_schema (versiones anteriores o algunas ndb), puede volcar la estructura de la tabla y buscar la columna manualmente.

mysqldump -h$host -u$user -p$pass --compact --no-data --all-databases > some_file.sql

Ahora busque el nombre de la columna en some_file.sql usando su editor de texto preferido, o use algunos scripts awk ingeniosos.

Y un simple script sed para encontrar la columna, simplemente reemplaza COLUMN_NAME por el tuyo:

sed -n ''/^USE/{h};/^CREATE/{H;x;s//nCREATE.*/n//n/;x};/COLUMN_NAME/{x;p};'' <some_file.sql USE `DATABASE_NAME`; CREATE TABLE `TABLE_NAME` ( `COLUMN_NAME` varchar(10) NOT NULL,

Puedes canalizar el basurero directamente en sed pero eso es trivial.

Tengo dos o tres nombres de columna diferentes que quiero consultar en toda la base de datos y enumerar todas las tablas que tienen esas columnas. ¿Algún script fácil?


Más simplemente hecho en una línea de SQL:

SELECT * FROM information_schema.columns WHERE column_name = ''column_name'';


Para aquellos que buscan la inversa de esto, es decir, buscar tablas que no contengan un determinado nombre de columna, aquí está la consulta ...

SELECT DISTINCT TABLE_NAME FROM information_schema.columns WHERE TABLE_SCHEMA = ''your_db_name'' AND TABLE_NAME NOT IN (SELECT DISTINCT TABLE_NAME FROM information_schema.columns WHERE column_name = ''column_name'' AND TABLE_SCHEMA = ''your_db_name'');

Esto fue realmente útil cuando comenzamos a implementar lentamente el uso de la columna especial ai_col de InnoDB y ai_col que averiguar cuál de nuestras 200 tablas aún no se había actualizado.


Si desea " Para obtener solo todas las tablas ", utilice esta consulta:

SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME like ''%'' and TABLE_SCHEMA = ''tresbu_lk''

Si desea " Para obtener todas las tablas con columnas ", utilice esta consulta:

SELECT DISTINCT TABLE_NAME, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE column_name LIKE ''%'' AND TABLE_SCHEMA=''tresbu_lk''


Use esta consulta de una línea, reemplace el_nombre_column_deseado por el nombre de su columna.

SELECT TABLE_NAME FROM information_schema.columns WHERE column_name = ''desired_column_name'';


Para obtener todas las tablas con columnas columnA o ColumnB en la base de datos YourDatabase :

SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME IN (''columnA'',''ColumnB'') AND TABLE_SCHEMA=''YourDatabase'';


SELECT DISTINCT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME LIKE ''%city_id%'' AND TABLE_SCHEMA=''database''


SELECT DISTINCT TABLE_NAME, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE column_name LIKE ''employee%'' AND TABLE_SCHEMA=''YourDatabase''


SELECT TABLE_NAME, COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME LIKE ''%wild%'';