簡體   English   中英

在mysql中創建它之前檢查存儲過程是否存在

[英]Check stored procedure exists or not before creating it in mysql

要求:Maven 配置文件應該被賦予一個目錄路徑,在運行我的 Maven 配置文件后,應該在我的數據庫中創建該目錄中的所有 sql 文件(存儲過程)。

注意:目錄中的sql文件有可能增加,因此如果添加了新文件,我應該只運行該文件,而不是運行所有文件。

問題:無法檢查過程是否存在或不使用 IF NOT EXISTS,當我將它添加到我的 sql 文件中時,在創建我的存儲過程之前,它給了我語法錯誤。

我嘗試使用

IF NOT EXISTS(SELECT  * FROM mysql.proc WHERE name='procedure_1001') THEN
    BEGIN
        CREATE DEFINER=`root`@`localhost` PROCEDURE `procedure_1001`()
        BEGIN
        // logic
        END
    END
END IF;

檢查ROUTINES表,如下所示:

SELECT count(*) > 0
into @myvar 
FROM INFORMATION_SCHEMA.ROUTINES 
WHERE 
       ROUTINE_TYPE='PROCEDURE' 
   AND ROUTINE_SCHEMA='dbname'
   AND ROUTINE_NAME = 'procedure_1001'
;

然后稍后使用@myvar 如果是 1,則運行該過程。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM