我将此过程'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'位做一些事情。
但是......我一直在接受 [错误] 1305 - 功能backup.get_usage不存在
在线查看有很多关于函数/过程名称和括号之间的空格的讨论,但没有。或者过程有缺陷,这个过程不是(即:我得到了预期的结果)。我希望我错过了一些其他东西,但几乎卡住了......
非常感谢任何和所有帮助..
答案 0 :(得分:0)
如果要在视图中使用存储例程的结果,则需要创建并填充其他表。在过程中创建并填充表。之后,调用此过程,它将创建表,然后从您的视图中选择数据。
如果你只想在appication中读取结果集,那么你可以在程序中执行SELECT查询(你的程序当前执行),并在代码中读取数据集(c#,带有mysqli扩展名的php,或者等等) ..)