在Spring Boot應用程序中,我試圖在運行集成測試之前初始化一些MySQL數據庫表和存儲過程,方法是在documentation中建議將schema.sql文件放在資源目錄中。Spring存儲過程引發MySQL數據庫初始化錯誤
create table語句可以工作,但create procedure語句會引發異常。導致異常的樣本schema.sql文件文件中的語句如下所示:
DROP PROCEDURE IF EXISTS `database`.FOO;
CREATE PROCEDURE `database`.FOO()
BEGIN
SELECT * from `database`.employees;
END;
的問題是,在存儲過程中的;
字符被彈簧ScriptUtils類前解析schema.sql文件的文件解析出執行它,然後導致MySQL在腳本上發出語法錯誤。
我已經看了ScriptUtils類,一直沒有找到一種方法來逃避;
字符與程序。使用\\
和\
作爲轉義字符也不起作用,以及MySQL DELIMITER
命令。
有沒有人能夠使用Spring Boot的schema.sql文件創建MySQL存儲過程?如果是的話,他們可以舉個例子嗎?
有關其他信息,以下Spring JIRA issue地址相同的主題,但被關閉了不會修復標籤。
我沒有太多的信息,但可能會嘗試'^'作爲轉義字符。 –