问题描述
truncate table 后立刻在其他 session 插入数据,可能会报错 unique constraint。
适用版本
OceanBase 数据库 V2.x 和 V3.x 版本
问题原因
在目前的 truncate 实现中,是分成了 drop table + create table 两步。如果新创建的 table schema 没有同步到其他机器上,insert into 还是会插入到旧表里,导致了主键或唯一约束的冲突。而 schema 同步需要最长秒级的时间,因此在此时间内避免对同一个 table 做 dml 操作。
规避方法
truncate table 之后等待几秒,等刷到新的 schema。