注册

mysql中的ON DUPLICATE KEY批量操作,在达梦中,怎么实现

郑建兵 2022/09/21 1793 2 已解决

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: dm8_20220822_rev166351_x86_rh6_64_ctm.tar
【操作系统】:masos
【CPU】: Intel
【问题描述】*:

create table "task"( id int auto_increment primary key, name varchar(30) not null default '', success_num int not null default 0, fail_num int not null default 0 ); insert into task(name,success_num, fail_num) values ('任务1', 2, 1), ('任务2', 4, 3);

在mysql中,批量操作,可以用如下语句

INSERT INTO task (id, name, success_num, fail_num) VALUES (1, '任务1', 20, 10), (3, '任务3', 5, 4) ON DUPLICATE KEY UPDATE success_num = VALUES (success_num), fail_num = VALUES (fail_num);

达梦中,只能用MERGE INTO单条操作吗?

MERGE INTO task USING dual ON (id = 1) WHEN MATCHED THEN update set success_num = 20, fail_num = 10 WHEN NOT MATCHED THEN insert (id, name, success_num, fail_num) values (1, '任务11', 20, 10); MERGE INTO task USING dual ON (id = 3) WHEN MATCHED THEN update set success_num = 5, fail_num = 4 WHEN NOT MATCHED THEN insert (id, name, success_num, fail_num) values (3, '任务3', 5, 4);
回答 0
暂无回答
扫一扫
联系客服