【问题标题】:How to declare a variable and mysql update in liquibase如何在 liquibase 中声明变量和 mysql 更新
【发布时间】:2019-03-15 18:34:33
【问题描述】:

我想用liquibase写下面的sql代码

设置@value1 = "string1"; 设置@value2 = "string2";

更新用户设置类别 = REPLACE(category, @value1, @value2);

如何在 liquibase 中写成 xml 或 sql 文件?

【问题讨论】:

    标签: sql maven liquibase


    【解决方案1】:

    如果你想在变更集的“sql”标签中声明和设置变量,你只需要删除“;”。

    默认情况下,liquibase 使用“;”执行,并且变量在执行范围内。 所以虽然这不起作用:

    DECLARE @value1 varchar(10);
    SET @value1 = "string1";
    

    这将起作用:

    DECLARE @value1 varchar(10)
    SET @value1 = "string1"
    

    我省略了最后一个“;”在初始化时,我假设您想对变量做一些事情

    【讨论】:

      【解决方案2】:

      @value 语法是 MySQL SQL 编辑器工具的一部分,数据库本身并不真正理解,因此 liquibase 无法利用它们。

      Liquibase 使用 ${value} 语法支持与 changelog paramaters 类似的功能

      【讨论】:

      • 我不认为这个说法是正确的,因为我可以通过 DBeaver 发送SET @..,它在下面使用 JDBC。
      猜你喜欢
      • 2012-07-30
      • 2015-08-19
      • 1970-01-01
      • 1970-01-01
      • 2020-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-21
      相关资源
      最近更新 更多