0

我将这个过程'get_usage'定义为:

BEGIN
    SELECT 
        CONCAT(GROUP_CONCAT(CONCAT('(SELECT order_id,`usage`, created, expire FROM ',table_name,' )') SEPARATOR '\r\nUNION\r\n'),' ORDER BY created ASC')
    INTO 
        @resultQuery
    FROM 
        information_schema.`TABLES`
    WHERE
        table_name LIKE "usage_%";

    PREPARE stmt FROM @resultQuery;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;
END

哪个做它应该做的。

为了更灵活,我想在视图中捕获此过程的输出:

CREATE 
    VIEW `usage_view`AS 
    SELECT get_usage() as usage_table;

之后我计划对'usage_table'位做一些事情..

但是..我不断收到 [Err] 1305 - FUNCTION backup.get_usage 不存在

在网上看有很多关于函数/过程名称和括号之间的空格的讨论,没有..或者有错误的过程,这个过程没有(即:我得到预期的结果)..我'我希望我错过了什么或其他东西,但几乎卡住了..

任何和所有的帮助都非常感谢..

4

1 回答 1

0

如果要在视图中使用存储例程的结果,则需要创建并填充附加表。在过程中创建和填充表。之后,调用此过程,它将创建表,然后从您的视图中选择数据。

如果您只想在应用程序中读取结果集,那么您可以在过程中执行 SELECT 查询(您的过程当前执行),并在代码中读取数据集(c#、带有 mysqli 扩展名的 php 等)

于 2013-02-07T15:31:44.517 回答