How to declare a variable and mysql update in liquibase

萝らか妹 提交于 2019-12-02 07:06:22

问题


I want to write the following sql code in liquibase

set @value1 = "string1"; set @value2 = "string2";

update users set category = REPLACE(category, @value1, @value2);

How to write this in liquibase either in xml or in sql file?


回答1:


The @value syntax is part of the MySQL SQL editor tools and not actually understood by the database itself so liquibase is not able to take advantage of them.

Liquibase does support similar functionality with changelog paramaters using the syntax ${value}




回答2:


If you want to declare and set variables within a changeset's 'sql' tag you just need to remove the ";".

By default liquibase uses ";" to execute, and variables are scoped within an execution. So while this will not work:

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

This will work:

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

I left off the last ";" on the initialization as I assume you want to do something with the variable



来源:https://stackoverflow.com/questions/22978380/how-to-declare-a-variable-and-mysql-update-in-liquibase

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!