| 行数 | 每个版本一行 |
|---|---|
| 关键列 | start_date/end_date/is_current |
| 合并 | 按自然键+hashdiff 比较 |
两步合并
两步合并
-- 1) 关闭旧版本
UPDATE dim_user SET end_date='2026-10-12', is_current=0
WHERE user_id=:id AND is_current=1 AND hashdiff<>:new_hash;
-- 2) 插入新版本
INSERT INTO dim_user(user_id,name,start_date,end_date,is_current,hashdiff)
VALUES(:id,:name,'2026-10-12','9999-12-31',1,:new_hash);版本行要与事实加载顺序对齐,避免事实关联到尚未生效的版本。