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