我的问题如下。我有两个表,假设A
和B
。我想合并A
和B
表。
两个表都有以下列(主键):
transaction_id
个group_id
个leaf_id
个
另外,B
有两列我想移到表A
中:
representation
timestamp
个
我在Liquibase中创建了以下更改:
<update tableName="A">
<column name="representation" valueComputed="
(SELECT btable.representation
FROM B btable
WHERE btable.transaction_id = transaction_id
AND btable.group_id = group_id
AND btable.leaf_id = leaf_id)
"/>
<column name="timestamp" valueComputed="
(SELECT btable.timestamp
FROM B btable
WHERE btable.transaction_id = transaction_id
AND btable.group_idx = group_id
AND btable.leaf_idx = leaf_id)
"/>
</update>
字符串
所以这不起作用,因为表A
没有别名,btable.transaction_id = transaction_id
将被解释为btable.transaction_id = btable.transaction_id
。
我的问题是:有没有办法在valueComputed
SQL中给base表取别名?
我知道这可以在Liquibase中使用<sql></sql>
,但如果可能的话,我想避免使用原始SQL。
我用的是Postgres。
谢谢你,谢谢
1条答案
按热度按时间4uqofj5v1#
我找不到解决方案,所以我最终在liquibase中使用了原始SQL,如下所示:
字符串