有没有办法转换最后一个a.ROWID>b.snowflake中的以下代码中的ROWID值?下面是oracle代码。需要将ROW ID带到雪花。但是snowflake不维护ROW ID。有什么方法可以实现以下内容并转换行ID问题吗?
DELETE FROM user_tag.user_dim_default a
WHERE EXISTS (SELECT 1
FROM rev_tag.emp_site_weekly b
WHERE a.number = b.ID
AND a.accountno = b.account_no
AND a.ROWID > b.ROWID)
所以这个Oracle代码看起来非常糟糕,因为ROWID是一个表特定的伪列,因此表之间的值比较似乎非常糟糕。除非有一些对齐的魔术发生,比如当user_tag.user_dim_default
被插入到rev_tag.emp_site_weekly
中时,也会被写入。但即便如此,我也可以想象数据流不会得到你想要的。
就像雪花的大多数东西一样;没有免费午餐";,因此需要实现依赖ROW_ID的数据生命周期。
这意味着,如果您想要使用两个序列,那么您应该在每个表上显式地使用。如果你想让它们相互关联,听起来应该使用多表插入或合并,这样你就可以访问第一个表SEQ并在第二个表中关联它。
联接表时,一个表上的RowID与另一个表的RowID没有关系。在编写Dedup逻辑或插入前删除类型逻辑时,您应该使用主键,然后再使用一个包含插入日期或上次更新日期的审核列。检查数据模型或ERD图,了解表之间的PK/FK关系以及可用的审核列。