如果db中存在事件,如何通过liquibase删除事件?

relj7zay  于 2021-07-09  发布在  Java
关注(0)|答案(1)|浏览(311)

我在spring启动应用程序的liquibase(changelog.xml)文件中创建了一个mysql事件。当我更改事件体中的一些逻辑时,如果事件在db中已经存在,我想删除它。但是执行下面的drop语句会导致mysql语法错误。我应该如何处理此事件更新?

<changeSet id="EVENT_ARCHIVE" author="jk" runOnChange="true">
                    <sql endDelimiter="|">
                        DROP EVENT IF EXISTS event_archive_rcs_message_log;
                        SET GLOBAL event_scheduler="ON";
                        |
                        CREATE EVENT IF NOT EXISTS event_archive
                        ON SCHEDULE EVERY 7 DAY 
                        STARTS CURRENT_TIMESTAMP 
                        DO
                          some queries...!
                        End |
                     </sql>

</changeSet>
cgvd09ve

cgvd09ve1#

必须在所有脚本上使用指定的分隔符,而不是默认分隔符:

<changeSet id="EVENT_ARCHIVE" author="jk" runOnChange="true">
                    <sql endDelimiter="|">
                        DROP EVENT IF EXISTS event_archive_rcs_message_log |
                        SET GLOBAL event_scheduler="ON" |
                        CREATE EVENT IF NOT EXISTS event_archive
                        ON SCHEDULE EVERY 7 DAY 
                        STARTS CURRENT_TIMESTAMP 
                        DO
                          -- some queries with ';' as delimiter 
                        End |
                     </sql>

</changeSet>

相关问题