请教高手
如何知道Mysql视图是由那些表组成的?
如何知道Mysql视图是由那些表组成的?
解决方案 »
- 请教mysql表分区后性能问题
- linux下mysql无法启动!!!急!!!等高人!!网上复制粘贴的不要浪费时间
- 请问如何批量递增式查询,请高手赐教?
- 如何输出指定个数的从数据库取出的内容
- mysql5的触发器不支持层叠触发,有没有别的解决方法的?
- 我的mysql里没有create database选项,没办法建立数据库。为什么?
- 一个简单问题,MySql数据库DDL有哪些数据类型?
- mysql中备份某一个时间段的数据
- mysql 移动后网站数据不能添加。
- 求where条件不等于的查询优化方法
- show master status \G 显示为空集
- linux MYSQL怎么去修改数据库存放的位置
select * from information_schemaVIEWS where TABLE_NAME='viewname'
分拆SQL语句
+------------------------------------------------+
| view_definition |
+------------------------------------------------+
| select `test`.`t`.`id` AS `id` from `test`.`t` |
+------------------------------------------------+
1 row in set (0.00 sec)
解析得到的view_definition值,截取from和后边可能的where等词之间的部分
不过你按楼上的办法得到VIEW的SELECT语句。 然后自己通过语法分析得到有哪些表或者VIEW
select * from information_schema.VIEWS where TABLE_NAME='viewname'
分拆SQL语句比较麻烦,为什么要得到表名?
information_schema.VIEWS是MYSQL的系统表,其中只有VIEW的SQL代码
**********************************
有系统库information_schema,在其中的表VIEWS中有记录所有的视图。
use information_schema;
select view_definition from views where table_name=‘viewname';
SELECT * FROM test WHERE id % 2 = 0
UNION ALL
SELECT * FROM test WHERE id % 2 = 1如果满足这个条件,可以使用
explain SELECT * FROM v_test;id select_type table type
1 PRIMARY <derived2> system
2 DERIVED test ALL
3 UNION test ALL
UNION RESULT <union2,3> ALL解析table列,去除<xxxx>,得到所有涉及到的表(或者它的表名)