【主键模型update】主键模型并发update结果不正确

版本2.5.12
并发执行update操作,清空一张表中不同的字段,但是发现有些字段没有清空


得到的结果如下:

期望结果:
6个字段都为空

版本 3.1.2
同样的问题,某些更新不生效
update t1 set type_code=‘a’ where type_code=‘b’;
424 rows affected in 65 ms
查询:
select count(*) from t1 where type_code=‘b’;
还有 424个记录
看看BE的日志也没有异常

@U_1664268205912_3017 请问楼主,你的问题找到解决办法了吗?

在fe.audit.log 中找下执行 update 语句对应的query id,发下 query id 和当时 be.info的日志

fe 日志:


be0:

be1:

解决了,改了datax的代码,加了一把表级别锁,目前这种一边更新,一边插入是有问题的,具体starrocks的实现机制我不清楚,我测试出来的是不能并发update,但是可以并发stream load,所以我在datax里面加了一把表级的读写锁

那我的问题给你可能还不一样,我是手动执行都不更新了

哦,那问题不一样

我连续执行了一下update
update economy2.company_info set type_code=‘guoqi’ where type like ‘%国有%’;
UPDATE economy2.company_info set type_code=‘gangat’ where type like ‘%港、澳%’;
UPDATE economy2.company_info set type_code=‘other_type’ where type like ‘%其%’;
UPDATE economy2.company_info set type_code=‘waizi’ where type like ‘%外%’;
UPDATE economy2.company_info set type_code=‘minying’ where type_code not in (‘gangat’, ‘guoqi’, ‘other_type’, ‘waizi’);

经过全量数据复现 执行第一条语句后数据就有问题了,没有全部更新
只使用部分数据没有复现这个问题

你这边通过 update 更新的时候有并发么

没有并发,手动执行的sql

是稳定复现的么,update的时候是否有写入。 有case可以发我们复现一下么

找了少量测试数据无法复现,用例全量的数据,新建表是复现出来,全量数据比较大1亿条数据