Eli*_*sta 0 mysql sql information-schema mariadb
我需要 MariaDB 中的一个唯一表,其中包含数据库中所有对象的列表。
在 MS SQL Server 中,我只使用一张表 (sys.Objects),该表包含所有对象,并且有一列“类型”,其中包含对象类型,例如:FUNCTION、TRIGGER、TABLE、PROCEDURE...
在 MariaDB/MySQL 中,我知道表 INFORMATION_SCHEMA.Tables、视图、触发器...,但有人知道包含所有对象的唯一表?
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
Run Code Online (Sandbox Code Playgroud)
该视图基于 MariaDB 10.6 中引入的 sys.schema_object_overview