Java 如何通过liquibase删除数据库中存在的事件?
我在spring启动应用程序的liquibase(changelog.xml)文件中创建了一个mysql事件。当我更改事件体中的一些逻辑时,如果事件在db中已经存在,我想删除它。但执行下面的drop语句会导致mysql语法错误。 我应该如何处理此事件更新Java 如何通过liquibase删除数据库中存在的事件?,java,mysql,spring-boot,liquibase,Java,Mysql,Spring Boot,Liquibase,我在spring启动应用程序的liquibase(changelog.xml)文件中创建了一个mysql事件。当我更改事件体中的一些逻辑时,如果事件在db中已经存在,我想删除它。但执行下面的drop语句会导致mysql语法错误。 我应该如何处理此事件更新 <changeSet id="EVENT_ARCHIVE" author="jk" runOnChange="true"> <
<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>
如果存在事件\u存档\u rcs\u消息\u日志,则删除事件;
设置全局事件调度程序=“开”;
|
创建事件(如果不存在)事件\u存档
按计划每7天
启动当前时间戳
做
一些疑问。。。!
结束|
您必须在所有脚本上使用指定的分隔符,而不是默认分隔符:
<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>
如果存在删除事件事件\u存档\u rcs\u消息\u日志|
设置全局事件调度程序=“开”|
创建事件(如果不存在)事件\u存档
按计划每7天
启动当前时间戳
做
--带有“;”的一些查询作为定界符
结束|