我刚开始使用 liquibase,并在其中一个变更日志中遇到了这一行:
--changeset NAME.SURNAME:1 endDelimiter:@ rollbackEndDelimiter:@
"endDelimiter:@"
的用法是什么。我认为它取代了默认的结束定界符(定义行尾的字符),即 ";"
但为什么呢?
抱歉,如果我的问题格式不正确,这是我的第一个问题:)
最佳答案
如果变更集包含 SQL,例如创建一个存储过程(或函数),其中代码本身包含 ;
以分隔过程内部的语句。
如果 Liquibase 使用 ;
拆分代码,则会将不完整的 DDL 语句发送到数据库。因此,您需要有一个不同的分隔符来标记例如结束。 CREATE PROCEDURE
语句。
关于delimiter - db 中 "endDelimiter:@"的用途是什么(在我的例子中是 liquibase),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51926898/