Mysql / Mariadb - Vista para buscar campos y tablas en la base de datos seleccionada

Con frecuencia necesito saber si una tabla tiene un campo con cierto nombre o simplemente verificar si una tabla existe en el esquema de datos. Esta información se puede obtener usando la base de datos principal

CREATE VIEW view_dbfields AS SELECT DISTINCT t.TABLE_NAME AS t, c.COLUMN_NAME as f, c.COLUMN_TYPE as ft FROM information_schema.TABLES as t LEFT JOIN information_schema.COLUMNS as c ON t.TABLE_NAME = c.TABLE_NAME WHERE 1 AND t.TABLE_SCHEMA=DATABASE() -- la bd seleccionada ORDER BY t.TABLE_NAME, c.COLUMN_NAME

Ejemplo

SELECT * FROM view_dbfields WHERE 1 AND f LIKE '%id_ec2%'
+-----------------+--------+-------------+
|        t        |   f    |     ft      |
+-----------------+--------+-------------+
| aws_ebs_volumes | id_ec2 | varchar(45) |
| aws_ec2s        | id_ec2 | varchar(19) |
| aws_ec2_costs   | id_ec2 | varchar(19) |
+-----------------+--------+-------------+

Autor: Eduardo A. F.
Publicado: 14-11-2020 14:50