将 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)
1
xiaozirun 72 天前
浅见,pkm 列的值可以是:表序号+左补零后的表 id ,这样的话就可以保证 pkm 列的值唯一
|
2
haah 72 天前
1. 雪花算法
or 2. uuid to bigint. |