我正在尝试将值插入数据库。我认为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包含一行。我实际上是从liquidbase获得'ValidationFailedException'。任何帮助吗?
我在MySQL中使用Navicat,当我运行这段代码时,它为tb_unity中的每一行包含一个新行int tb_config。我从tb_unity中使用的字段是'id'。如果我在tb_unity中有05个单位,它必须在tb_config中添加05行,具有相同的值,只更改单位的id。
如果您尝试使用任何SQL工具运行该SQL,您将看到问题是您确实需要where子句。您想使用tb_unity
的哪一行的id ?