dml事务执行过程中数据丢失,竟是因为。。。

OceanBase会考虑实现表锁吗?
比如按下图中的顺序执行SQL,会出现dml事务执行中,表被清空,提交后有数据丢失现象发生。

在OB 3.x版本,truncate 相当于先删除表,再新建表,目前看到的现象是符合预期的;
OB4.x版本会重构truncate,解决上面的问题;

1 个赞

4.0规划实现表锁

简老师,在这之前,有什么替代解决方案呢

把truncate改成delete

4.0 版本已经实现了表锁,truncate table 会一直等到左边那个 session 的事务提交之后再结束。

可惜离发布还早着呢

8.10号发布

4.0社区版发布时间还未规划;