I want to write the following sql code in liquibase
set @value1 = \"string1\"; set @value2 = \"string2\";
update users set category = REPLACE(category, @valu
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
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}