MySQL - table_name是否基于table_name列表而存在

时间:2016-03-09 16:23:52

标签: mysql

我希望我的描述准确无误。我试图找到的是基于另一个表创建的列表是否存在table_name。

例如。表A有一个子表列表

a_zcmdb_middleware_mq_view
a_zcmdb_middleware_tomcat_view
a_zcmdb_middleware_tomcat_web_view
a_zcmdb_middleware_websphere_view
a_zcmdb_myapp_app_db_view
a_zcmdb_myapp_fprint_dq_view
a_zcmdb_myapp_host_ear_war_view
a_zcmdb_oracle_catalog
a_zcmdb_oracle_instance
a_zcmdb_oracle_physical
a_zcmdb_oracle_rel_catlog
a_zcmdb_oracle_rel_instance
a_zcmdb_physical_db
a_zcmdb_software_product

我想检查数据库以确保这些表确实存在。

我发现了一些,发现这张桌子不存在。

  

ERROR 1146(42S02):表' a_zcmdb_middleware_tomcat_web_view'不存在

2 个答案:

答案 0 :(得分:1)

您可以在IN子句中使用嵌套的SELECT从information_schema获取结果,并根据此查询的结果,您可以获取现有的表:

 SELECT * 
  FROM information_schema.tables 
  WHERE table_schema = 'your_db' 
  AND table_name IN (SELECT your_db.test.tb_name FROM your_db.test)

答案 1 :(得分:0)

内置TABLES数据库中的information_schema表格包含您正在寻找的信息。

SELECT * from information_schema.TABLES
WHERE TABLE_NAME = 'a_zcmdb_middleware_tomcat_web_view';