gpt4 book ai didi

liquibase - 更改列中的数据类型时将 int 转换为 value

转载 作者:行者123 更新时间:2023-12-02 11:27:09 31 4
gpt4 key购买 nike

在执行 modifyDataType 时,liquibase 是否可以进行某种映射?

考虑以下示例:

<changeSet id="1" author="me">
<createTable tableName="person">
<column name="id" type="int">
<constraints primaryKey="true" nullable="false" />
</column>
<column name="firstName" type="varchar(100)"></column>
<column name="lastName" type="varchar(100)"></column>
<column name="marital_status" type="int">
<constraints nullable="false" />
</column>
</createTable>
</changeSet>
<changeSet id="2" author="me">
<modifyDataType tableName="person" columnName="type"
newDataType="varchar(36)" />
</changeSet>

我希望在我的“类型”列中发生以下映射:

0->single
1->married
etc..

liquibase 可以做到这一点吗?我通过命令行使用它。

最佳答案

我认为直接通过某种映射或重构不可能实现这一点。

实现此目的的一种方法是使用 sql 并将其放入另一个变更集中,该变更集在更改数据类型的变更集之后立即运行:

<changeSet id="3" author="me">
<sql>
update person set martial_status = 'single' where martial_status = 0;
update person set martial_status = 'married' where martial_status = 1;
</sql>
</changeSet>

我只是把这个作为一个想法写下来。未经测试。

您可以添加 precondition仅当 id 2 的变更集运行成功时才执行此变更集。

关于liquibase - 更改列中的数据类型时将 int 转换为 value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15479463/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com