我有表学生,字段是student_id,student_name,year_joining ......
现在我想将year_joining重命名为year_completion,
但我不确定,多少视图,过程函数依赖于今年_joinging,
在mysql中,有没有任何功能呢......
答案 0 :(得分:0)
您可以尝试查询information_schema
数据库:
USE `information_schema`;
SELECT * FROM `VIEWS` WHERE `VIEW_DEFINITION` LIKE '%year_joining%';
SELECT * FROM `ROUTINES` WHERE `ROUTINE_DEFINITION` LIKE '%year_joining%';
这应返回引用字段year_joining
。
我认为我说得对,在任何一种情况下,列TABLE_NAME
都将包含视图/过程的名称,而列VIEW_DEFINITION
或ROUTINE_DEFINITION
将包含视图/过程的定义。
要将搜索限制在特定数据库中,请在查询中加入TABLE_SCHEMA
或ROUTINE_SCHEMA
,例如
SELECT * FROM `VIEWS` WHERE `VIEW_DEFINITION` LIKE '%year_joining%' AND `TABLE_SCHEMA` = 'my_database';
SELECT * FROM `ROUTINES` WHERE `ROUTINE_DEFINITION` LIKE '%year_joining%' AND `ROUTINE_SCHEMA` = 'my_database';