liquibase 根据现有列更新数据
liquibase update data based on existing column
在这里,我是 liquibase 的新手,我有一个场景,我需要向现有 table 添加一个新列,并根据现有列获得此列的值。但是,我能够添加列,但找不到为此列设置默认值的方法。
考虑一下我有一个名为 table_1
的 table
id
col1
col2
1
11
22
2
12
33
3
13
44
现在我想在上面的 table 中添加列 col3 并使该列的值与 col2 相同。我期待输出类似
id
col1
col2
col3
1
11
22
22
2
12
33
33
3
13
44
44
您已标记 liquibase SQL,您是否在更新日志中使用 SQL 作为首选语言?
我想如果你是,SQL 语句可能有效:
-- liquibase formatted sql
-- changeset user1:1651490946175-1
UPDATE TABLENAME SET col3 = col2;
否则,您可以在 json、yaml.
中使用类似的语法
使用一个变更集添加可为空的列,然后使用第二个变更集更新值。
<changeSet id="Add col3" author="me">
<addColumn tableName="table_1">
<column name="col3" type="int" />
</addColumn>
</changeSet>
<changeSet id="Update column using another column" author="me">
<update tableName="table_1">
<column name="col3" valueComputed="col2" />
</update>
</changeSet>
在这里,我是 liquibase 的新手,我有一个场景,我需要向现有 table 添加一个新列,并根据现有列获得此列的值。但是,我能够添加列,但找不到为此列设置默认值的方法。
考虑一下我有一个名为 table_1
的 tableid | col1 | col2 |
---|---|---|
1 | 11 | 22 |
2 | 12 | 33 |
3 | 13 | 44 |
现在我想在上面的 table 中添加列 col3 并使该列的值与 col2 相同。我期待输出类似
id | col1 | col2 | col3 |
---|---|---|---|
1 | 11 | 22 | 22 |
2 | 12 | 33 | 33 |
3 | 13 | 44 | 44 |
您已标记 liquibase SQL,您是否在更新日志中使用 SQL 作为首选语言?
我想如果你是,SQL 语句可能有效:
-- liquibase formatted sql
-- changeset user1:1651490946175-1
UPDATE TABLENAME SET col3 = col2;
否则,您可以在 json、yaml.
中使用类似的语法使用一个变更集添加可为空的列,然后使用第二个变更集更新值。
<changeSet id="Add col3" author="me">
<addColumn tableName="table_1">
<column name="col3" type="int" />
</addColumn>
</changeSet>
<changeSet id="Update column using another column" author="me">
<update tableName="table_1">
<column name="col3" valueComputed="col2" />
</update>
</changeSet>