业务原因,不能升级oceanbase版本,必须使用v4.2.1。是否有合适的方案替代临时表?
目前暂时使用实体表代替,但考虑到多线程并发,这样做存在较大问题。
询问DBA,得到方案是使用窗口函数,还有其他解法吗?
- “生产环境不建议使用临时表,可使用普通表代替。”
- 可通过以下方式模拟临时表行为:
- 在会话开始时创建一个唯一的中间表(如带会话 ID 或时间戳命名);
- 使用后显式删除;
- 建议将这些表统一归类到专用的 schema 或前缀下以便管理。
- 示例(伪代码逻辑):
CREATE TABLE temp_processing_$session_id (
id BIGINT,
data VARCHAR(100)
);
-- 处理数据...
DROP TABLE temp_processing_$session_id;