mysql drop table如果过程中存在

Alw*_*ler 5 mysql procedure sql-drop

我正在尝试将嵌套的集模型示例应用于过程。我已经发现许多使用此技术的人,在此过程中我发现了一个问题。每次我调用程序时,都会得到提示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;
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,我在这里做错了吗(它是示例代码),如果代码还可以,我是否可以禁用if是否存在警告?在引起此类警告的过程中是否存在特殊的循环?

Dev*_*art 3

解决方法:尝试截断表而不是重新创建。

不使用DROP TABLE/ CREATE TABLE。创建此表一次(或当您需要时)并使用TRUNCATE TABLE命令。