Oracle 是否可以使用liquibase更新数据库中的现有行?
试图找到这个问题的答案,但没有找到 例如,我有一张表: 表格:Oracle 是否可以使用liquibase更新数据库中的现有行?,oracle,database,liquibase,Oracle,Database,Liquibase,试图找到这个问题的答案,但没有找到 例如,我有一张表: 表格: col1 | col2 123 0 124 1 我想把col2的值改为1,我就是这样做的: <changeSet author="myName" id="7799"> <sql> UPDATE TABLENAME; SET COL1='1' WHERE col1='123'; </sql> </chan
col1 | col2
123 0
124 1
我想把col2的值改为1,我就是这样做的:
<changeSet author="myName" id="7799">
<sql>
UPDATE TABLENAME;
SET COL1='1' WHERE col1='123';
</sql>
</changeSet>
更新表名;
设置COL1='1',其中COL1='123';
唉,它不起作用。所以,我想知道是否有可能用liquibase来做?因为,文档中的大多数标记都与创建表、添加列等有关。您可以使用以下liquibase语法进行更新:
<changeSet author="myname" id="7799">
<update catalogName="dbname"
schemaName="public"
tableName="TABLENAME">
<column name="COL1" value='1' type="varchar(50)"/>
<where>col1='123'</where>
</update>
</changeSet>
col1='123'
有关其他可用选项,请查看
tablename
之后的code>错误。代码>终止一条语句,而不是一行。下次请包括错误信息。“不工作”一点帮助都没有(除非错误很明显)你好,谢谢你的回复。我试过了;没有;->同样的结果。现在,我希望我有一条错误消息,因为这样我至少知道出了什么问题,但是应用程序执行时没有任何错误、警告或异常。只是我想在数据库中进行的更改,不是吗。您确定更改集已经针对您的数据库执行了吗?例如,如果您运行“changelogSync”命令,这会将变更集标记为在数据库中执行,而不会实际运行SQL语句。随后运行liquibase不会执行标记为先前运行的变更集。您应该明确地向问题添加更多信息。如果您想操作数据,基本上这就是使用liquibase的方法。它确实有效。很难想象liquibase可以正常执行,但不会产生任何错误。添加命令行(或您使用的任何命令行)以运行liquibase。添加liquibase返回的内容的输出(即使它不包含错误)。您好,我在文档中没有看到任何
标记,而是
。我看不到与SET COLUMN=Columnnewvalue
的等价性,我看到的只是updatetablename where col1='123'
。如果我错了,请纠正我。谢谢