求问:多表 sql 并发生成唯一列数值列

furtherRoad · 2024-9-13 15:59:31 · 23 次点击
将 oracle 中的 5 个表同步到 mysql 的 1 个表中;
mysql 中需要有一个新增字段(pkm)为 bigint 类型;
这 5 个 oracle 表的数据和数据量会实时变化;
无法改变目标数据源 mysql 的表结构;
现在需要使用 oracle 的 select 语句生成一列新的列,方便抽取到 mysql ;
需要生成的列(pkm)必须是唯一值,不能和其他表重复;
每个 select 是并发执行,不是逐个执行。

所以用 ROW_NUMBER()不太合适,如:
    SELECT

        ROW_NUMBER() OVER (ORDER BY id) +

        (SELECT COUNT(*) FROM table1) +

        ...+

        (SELECT COUNT(*) FROM table5)
举报· 23 次点击
登录 注册 站外分享
1 条回复  
xiaozirun 小成 2024-9-13 17:28:19
浅见,pkm 列的值可以是:表序号+左补零后的表 id ,这样的话就可以保证 pkm 列的值唯一
返回顶部