我正在寻找以下问题的解决方案:
我有一个表A,我想添加一列-用于UUID字符串的简单varchar =>简单。
问题是,我在现有行中需要一个唯一的UUID:我必须-以某种方式-浏览所有行并添加一个生成的UUID。
到目前为止,我尝试过的是:
<addColumn tableName="mhds_task">
<column name="execution_key" type="varchar(255)" valueComputed="(SELECT md5(random()::text || clock_timestamp()::text)::uuid)"/>
</addColumn>
但这会给我每一行相同的值-我假设liquibase每列计算一次该值吗?
我已经研究了2个小时-我简直不敢相信我是唯一想要实现类似目标的人;)
有什么想法或提示吗?
最好的问候 马吕斯
答案 0 :(得分:0)
我也曾经尝试过解决这个问题的方法,但是没有运气。 所以我不得不写单独的changeSets:
用这样生成的数据填充列:
<changeSet id="foo" author="bar">
<update tableName="mhds_task">
<column name="execution_key"
valueComputed="(SELECT md5(random()::text || clock_timestamp()::text)::uuid)"/>
</update>
</changeSet>