能否使用SHOW关键字创建包含SHOW PROCESSLIST的MySQL视图?
问题解答
你提供的视图创建语句无法成功执行,原因是MySQL对视图的定义有严格要求:视图的AS子句必须跟随一个合法的SELECT查询语句,而SHOW PROCESSLIST属于MySQL的专用命令,并非标准SELECT查询,因此不符合视图创建的语法规则。
要实现等效于SHOW PROCESSLIST的视图,你可以通过查询information_schema.PROCESSLIST表来实现——SHOW PROCESSLIST的底层就是读取这个系统表的数据。正确的创建语句如下:
CREATE VIEW GetProcessList AS SELECT ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO FROM information_schema.PROCESSLIST;
如果需要和SHOW FULL PROCESSLIST的输出一致(显示完整的INFO字段内容),直接使用SELECT *即可:
CREATE VIEW GetProcessList AS SELECT * FROM information_schema.PROCESSLIST;
创建完成后,执行SELECT * FROM GetProcessList;就能得到和SHOW PROCESSLIST相同的结果。
内容的提问来源于stack exchange,提问作者user18928007
相关产品推荐
相关产品推荐

