栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用Liquibase和mysql创建触发器来修复SQL语法错误

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用Liquibase和mysql创建触发器来修复SQL语法错误

一夜无眠,再加上@Jens建议,我终于明白了这个问题。

首先,如果您看到我的帖子,则该错误不是我所认为的SQL错误。我以为

AFTER INSERT
是引发错误的原因,但这是
AFTER UPDATE

关键是确保设置

splitStatements:false
endDelimiter
而无需设置。

这是两个有效的示例:

<changeSet id="event_horizon_1_0_1" author="lmtyler" dbms="mysql">    <sqlFile splitStatements="false" stripComments="false" path="01__ai_event_approval.sql" relativeToChangelogFile="true"/></changeSet>

与此SQL文件

CREATE DEFINER ='evclient'@'%' TRIGGER ai_event_approval    AFTER INSERT    ON event_approval    FOR EACH rowbegin    insert into event_approval_log (rowAction,   actionTs,   event,   requestorEmail,   requestReason,   statusType,   approverUserId,   approverReason,   lastChangTs)        values ('I',     current_timestamp(6),     new.event,     new.requestorEmail,     new.requestReason,     new.statusType,     new.approverUserId,     new.approverReason,     new.lastChangTs);end;

这是使用SQL格式

--changeset lmtyler:event_horizon_1_0_1 dbms:mysql splitStatements:falseCREATE TRIGGER au_event_approval    AFTER UPDATE    ON event_approval    FOR EACH rowbegin    insert into event_approval_log (rowAction,   actionTs,   event,   requestorEmail,   requestReason,   statusType,   approverUserId,   approverReason,   lastChangTs)    values ('U', current_timestamp(6), new.event, new.requestorEmail, new.requestReason, new.statusType, new.approverUserId, new.approverReason, new.lastChangTs);end;


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/596679.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号