I have created one mysql event in liquibase(changelog.xml) file in my spring boot application. I want to drop the event if it is allready exist in db when I change some logic in event body. But executing drop statement below gives me mysql syntax error. How should I approach this event updation?
<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>
You must use specified delimiter instead of default one over all the script:
<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>