Liquibase使用多个id插入计算值

时间:2015-08-27 14:12:39

标签: liquibase

我正在尝试将值插入数据库。我认为SQL看起来像这样:

INSERT INTO `tb_config` (`name`, `value`, `description`, `unity_id`)
(SELECT 'new_rule', true, 'rule description', id FROM tb_unity );

但是,我想使用Liquibase,使用变更集:

<changeSet author="Luis Sukys" id="1022" >
    <insert tableName="tb_config">
        <column name="name">new_rule</column>
        <column name="value">false</column>
        <column name="descricao">rule description</column>
        <column name="unidade_id" valueComputed="SELECT id FROM tb_unity" />
    </insert>
</changeSet>

我已经看过使用valueComputed但使用了where子句。 这个想法是它在tb_config中为tb_unity中的每个id包含一行。 我实际上是从liquibase获得'ValidationFailedException'。 有什么帮助吗?

2 个答案:

答案 0 :(得分:0)

如果您尝试使用您使用的任何SQL工具运行该SQL,您将看到问题是您确实需要where子句。您要使用哪个tb_unity行?

答案 1 :(得分:0)

我在MySQL中使用Navicat,当我运行此代码时,它为tb_unity中的每一行包含一个新行int tb_config。我在tb_unity中使用的字段是&#39; id&#39;。 如果我在tb_unity中有05个unities,它必须在tb_config中添加05行,具有相同的值,只更改unity的id。