【发布时间】:2012-10-18 21:06:36
【问题描述】:
我正在尝试将嵌套集模型示例与过程一起应用。我用这种技术找到了很多,在这个过程中我发现了一个问题。每次我调用该程序时,我都会收到unknown table XXX。当我创建程序时,我完全没有问题。快速示例:
CREATE PROCEDURE `sp_getRoleTree` (IN root INT)
READS SQL DATA
BEGIN
DECLARE rows SMALLINT DEFAULT 0;
DROP TABLE IF EXISTS ROLE_TREE;
CREATE TABLE ROLE_TREE (
nodeID INT PRIMARY KEY
) ENGINE=HEAP;
INSERT INTO ROLE_TREE VALUES (root);
SELECT * FROM ROLE_TREE;
DROP TABLE ROLE_TREE;
END;
所以我的问题是,我在这里做错了什么(它是示例代码),如果代码没问题,我可以禁用 if exists 的警告吗?导致此类警告的过程中是否存在特殊循环?
【问题讨论】:
-
为什么需要这张桌子?如果您想从过程中输出数据集 - 只需运行 SELECT 查询。
-
不仅仅是一个数据集......一个嵌套集,它用于分层数据的父子孙关系。基本上,您创建一个可以获取以评估关系的表层次结构。上面的例子是实际过程的一部分