web-dev-qa-db-fra.com

Mettre à jour une ligne du tableau à l'aide de la base de données

J'espérais que quelqu'un puisse vérifier si c'est la bonne syntaxe et la bonne façon de remplir la base de données à l'aide de la base de données? Tout ce que je veux c'est changer la valeur d'une ligne dans une table et je le fais comme ceci:

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

Tout ce que je veux, c'est changer une valeur d'affilée dans un tableau. Ce qui précède ne fonctionne pas, bien que l'application ait été compilée et ne se soit pas plainte, mais hélas, la valeur n'a pas été modifiée.

Je vous remercie

19
user2187935

Oui c'est possible. Voir la syntaxe ci-dessous:

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

Plus d'informations sur Liquibase Update

0
Mohammad Nadeem

Les réponses ci-dessus sont trop compliquées, dans la plupart des cas, cela suffit:

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

important d'utiliser des guillemets simples et non des guillemets doubles "dans la clause WHERE.

54
JavaDevSweden

Le message ci-dessus peut être modifié pour corriger le format de cette manière. Valeur insérée = "1" qui est le résultat attendu dans la question de ce message.

<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>
1
Code Buster