mariadb 数据库所有对象的列表

7lrncoxx  于 2023-01-02  发布在  其他
关注(0)|答案(1)|浏览(119)

我需要一个唯一的表在MariaDB中的所有对象在DB中的列表。
在MS SQL Server中,我只使用一个表(sys.Objects),该表包含所有对象,并且有一列“TYPE”的类型为Object,例如:函数、触发器、表、程序......
在MariaDB/MySQL中,我知道表INFORMATION_SCHEMA。表、视图、触发器......,但有人知道包含所有对象的唯一表吗?

f4t66c6m

f4t66c6m1#

INFORMATION_SCHEMA不提供所有对象的信息。
由于PERFORMANCE_SCHEMA.objects_summary_global_by_type不包含所有对象类型(并且PERFORMANCE_SCHEMA通常在默认情况下不启用),您可以创建自己的视图:

CREATE VIEW objects AS 
  select ROUTINE_NAME AS `object`,
         ROUTINE_SCHEMA AS `schema`,
         ROUTINE_TYPE AS `object_type`
         from information_schema.routines 
  union select TABLE_NAME, TABLE_SCHEMA, TABLE_TYPE
         from information_schema.tables
  union select TRIGGER_NAME, TRIGGER_SCHEMA, 'TRIGGER'
         from information_schema.triggers
  union select EVENT_NAME, EVENT_SCHEMA, 'EVENT'
         from information_schema.events
  union select INDEX_NAME, INDEX_SCHEMA, concat('INDEX (',INDEX_TYPE,')')
         from information_schema.statistics

此视图基于在MariaDB 10.6中引入的sys.schema_object_overview

相关问题