为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8
【操作系统】:centos7
【CPU】:
【问题描述】*:merge into语句在控制台可以执行,用java代码执行报错(多版本操作冲突过多)
MERGE INTO t_tenant_user_resume t
USING(
SELECT
783410449912321 AS f_id,
623339086316032 AS f_user_id,
'王2' AS f_user_name,
317947582047744 AS f_tenant_id,
482150194890240 AS f_org_id,
'分公司' AS f_org_name,
534225170462461 AS f_job_id,
'无' AS f_job_name,
2 AS f_data_type,
'调整位' AS f_change_reason,
'建南分公司' AS f_full_name,
'2023-07-04 23:05:31.963' AS f_post_begin_date,
NULL AS f_post_end_date,
'2023-07-04 23:05:31.98' AS f_create_time,
'2023-07-04 23:05:31.98' AS f_modify_time
) s
ON (t.f_id=s.f_id)
WHEN MATCHED THEN
UPDATE SET
t.f_user_id=s.f_user_id,
t.f_user_name=s.f_user_name,
t.f_tenant_id=s.f_tenant_id,
t.f_org_id=s.f_org_id,
t.f_org_name=s.f_org_name,
t.f_job_id=s.f_job_id,
t.f_job_name=s.f_job_name,
t.f_data_type=s.f_data_type,
t.f_change_reason=s.f_change_reason,
t.f_full_name=s.f_full_name,
t.f_post_begin_date=s.f_post_begin_date,
t.f_post_end_date=s.f_post_end_date,
t.f_create_time=s.f_create_time,
t.f_modify_time=s.f_modify_time
WHEN NOT MATCHED THEN
INSERT
(
t.f_id,
t.f_user_id,
t.f_user_name,
t.f_tenant_id,
t.f_org_id,
t.f_org_name,
t.f_job_id,
t.f_job_name,
t.f_data_type,
t.f_change_reason,
t.f_full_name,
t.f_post_begin_date,
t.f_post_end_date,
t.f_create_time,
t.f_modify_time
)
VALUES
(
s.f_id,
s.f_user_id,
s.f_user_name,
s.f_tenant_id,
s.f_org_id,
s.f_org_name,
s.f_job_id,
s.f_job_name,
s.f_data_type,
s.f_change_reason,
s.f_full_name,
s.f_post_begin_date,
s.f_post_end_date,
s.f_create_time,
s.f_modify_time
)
我也一直报这个错,我是merge into 一个分区表,但是我其实这个表数据才二十来万就出现这个问题
调整一下dm.ini里面的参数MVCC_RETRY_TIMES,调大一些并重启试试