我可以通过mysql特殊函数存储我自己的sql查询并在以后执行存储查询吗?

时间:2013-08-14 09:29:13

标签: mysql sql

我使用的是mysql 5.6.11-win32。

我不知道是否有办法告诉mysql在mysql的数据库中存储任何查询(如information_schema或mysql),但不在我自己的数据库中。

我想输入查询然后通过一些mysql特殊功能存储它。稍后在将来的会话中,我想检索该查询并执行它。就像我们对存储过程一样。

是否可以在mysql中存储查询以供以后执行?

谢谢!

2 个答案:

答案 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,这些伪表是在一个或多个表中应用查询的结果。