2013-05-18 4 views
5

Я надеялся, что если кто-то сможет проверить, является ли это правильным синтаксисом и правильным способом заполнения БД с помощью Liquibase? Все, что я хочу, чтобы изменить значение строки в таблице, и я делаю это так:Обновить одну строку в таблице, используя Liquibase

<changeSet author="name" id="1231"> 
<update tableName="SomeTable"> 
    <column name="Properties" value="1" /> 
    <where>PROPERTYNAME = 'someNameOfThePropery"</where> 
</update> 
<changeSet> 

Все, что я хочу, чтобы изменить одно значение в строке в некоторой таблице. Вышеприведенное не работает, хотя приложение составлено и оно не жаловалось, но, увы, значение не было изменено.

Спасибо

+3

вы. получил «вместо« в конце вашего элемента where ». – jackrabbit

ответ

7

Да, это возможно. Смотрите ниже синтаксис:

<changeSet author="name" id="1231"> 
    <update catalogName="dbname" 
      schemaName="public" 
      tableName="SomeTable"> 
     <column name="Properties" type="varchar(255)"/> 
     <where>PROPERTYNAME = 'someNameOfThePropery'</where> 
    </update> 
</changeSet> 

Более подробная информация на Liquibase Update

+2

Вышеуказанное не будет работать, потому что вы не устанавливаете поле значения. Поэтому он не даст соответствующего результата. Последний из них указан ниже. –

0

выше пост может быть изменен, чтобы исправить формат таким образом. Введенное значение = "1", что является ожидаемым результатом в вопросе об этом сообщении.

<changeSet author="name" id="1231"> 
    <update catalogName="dbname" 
      schemaName="public" 
      tableName="SomeTable"> 
     <column name="Properties" **value="1"** type="varchar(255)"/> 
     <where>PROPERTYNAME = 'someNameOfThePropery'</where> 
    </update> 
</changeSet> 
7

Приведенные выше ответы являются слишком сложными, в большинстве случаев этого достаточно:

<changeSet author="name" id="123"> 
    <update tableName="SomeTable"> 
     <column name="PropertyToSet" value="1" /> 
     <where>otherProperty = 'otherPropertyValue'</where> 
    </update> 
</changeSet> 

важно использовать одинарные кавычки ', а не двойные кавычки "в выражении WHERE