2013-05-18 35 views
5

Tôi đã hy vọng nếu ai đó có thể xác minh xem đây có phải là cú pháp chính xác và cách nhập đúng DB bằng cách sử dụng liquibase không? Tất cả, tôi muốn là thay đổi giá trị của một hàng trong một bảng và tôi đang làm như sau:Cập nhật một hàng trong bảng, sử dụng liquibase

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

Tất cả những gì tôi muốn là thay đổi một giá trị trong một hàng trong một số bảng. Ở trên không hoạt động, mặc dù ứng dụng được biên soạn và nó không phàn nàn, nhưng than ôi, giá trị không thay đổi.

Cảm ơn bạn

+3

các Bạn đã. có một "thay vì một" ở phần cuối của phần tử của bạn. – jackrabbit

Trả lời

7

Có thể thực hiện được. Xem cú pháp dưới đây: info

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

thêm tại Liquibase Update

+2

Ở trên sẽ không hoạt động, bởi vì bạn không đặt trường giá trị. Vì vậy, nó sẽ không cho kết quả phù hợp. Cuối cùng được chỉ định trong bài viết dưới đây. –

0

Các bài trên có thể được sửa đổi để sửa định dạng theo cách này. Giá trị được chèn = "1" là kết quả mong đợi trong câu hỏi của bài đăng này.

<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

Những câu trả lời trên là quá phức tạp, đối với hầu hết các trường hợp này là đủ:

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

quan trọng để sử dụng dấu nháy đơn 'và không dấu ngoặc kép "trong mệnh đề WHERE