在任何过程或函数或视图中都使用如何查找表

时间:2015-06-10 10:41:56

标签: mysql

我正在使用MySQL,在我的数据库中我有一个名为tbltest的表。

我想检查我的数据库中这个表的使用位置。

举个例子:我想检查这个表是否在任何商店过程/函数/视图中使用。

我如何检查MySQL。

1 个答案:

答案 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%'