我正在使用MySQL,在我的数据库中我有一个名为tbltest
的表。
我想检查我的数据库中这个表的使用位置。
举个例子:我想检查这个表是否在任何商店过程/函数/视图中使用。
我如何检查MySQL。
答案 0 :(得分:10)
根据MySQL documentation
SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'tbltest'
如果您只想检查存储过程/功能/视图,那么您可以加入INFORMATION_SCHEMA.ROUTINES
更新:
ROUTINE_TYPE
将提供类似过程/函数的类型。
SELECT DISTINCT ROUTINE_NAME, ROUTINE_TYPE
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_DEFINITION LIKE '%tbltest%'
-- AND ROUTINE_TYPE = 'PROCEDURE' -- to filter SPs only
签入VIEWS
:
SELECT DISTINCT TABLE_NAME AS Name, 'VIEW' AS Type
FROM INFORMATION_SCHEMA.VIEWS
WHERE VIEW_DEFINITION LIKE '%view_name%'