是的,Hologres的INSERT ON CONFLICT语法暂时不支持多个values的直接插入。你需要为每个values执行一次INSERT ON CONFLICT语句。这是Hologres的一个限制,可能在未来版本的Hologres中得到改进。
对于你提供的例子,你可以这样修改:
INSERT INTO test1 (a, b, c) VALUES (1, 1, 1)
ON CONFLICT (a)
DO UPDATE SET b = EXCLUDED.b, c = EXCLUDED.c, a = EXCLUDED.a;
INSERT INTO test1 (a, b, c) VALUES (1, 2, 3)
ON CONFLICT (a)
DO UPDATE SET b = EXCLUDED.b, c = EXCLUDED.c, a = EXCLUDED.a;
这样,当主键冲突时,Hologres会更新对应的主键值。