我使用的是mysql 5.6.11-win32。
我不知道是否有办法告诉mysql在mysql的数据库中存储任何查询(如information_schema或mysql),但不在我自己的数据库中。
我想输入查询然后通过一些mysql特殊功能存储它。稍后在将来的会话中,我想检索该查询并执行它。就像我们对存储过程一样。
是否可以在mysql中存储查询以供以后执行?
谢谢!
答案 0 :(得分:3)
如果通过“查询”表示“SELECT query”,那么您需要create views。视图本质上创建了一个伪表,您甚至可以将其包含在较大的查询中。
示例:
CREATE VIEW my_view AS SELECT something FROM my_table WHERE some_twisted_condition;
SELECT * FROM my_view; -- returns the result of "SELECT something FROM my_table WHERE some_twisted_condition;"
SELECT * FROM my_view JOIN another_table USING something;
答案 1 :(得分:1)
听起来你想要一些MySQL stored procedure or function:
MySQL 5.0支持存储例程(过程和函数)。存储例程是一组可以存储在服务器中的SQL语句。完成此操作后,客户端不需要继续重新发布单个语句,而是可以参考存储的例程。
存储例程需要mysql数据库中的proc表。此表是在MySQL 5.0安装过程中创建的。如果要从早期版本升级到MySQL 5.0,请确保更新授权表以确保proc表存在。请参见第4.4.9节“mysql_upgrade - 检查MySQL升级表”。
这是在许多RDBMS中使用的常用习惯用法,用于提供引用功能和从应用程序层分离数据逻辑。
另一种选择是使用views,这些伪表是在一个或多个表中应用查询的结果。