Ent API: upsert*()
Last updated
WITH rows(...) AS (VALUES
('s1', '123', 'test1'),
('s2', '456', 'test2')),
updates AS (
UPDATE topics SET ...
FROM rows WHERE topics.slug=rows.slug
RETURNING rows._key, topics.id AS id),
inserts AS (
INSERT INTO topics (id, ...)
SELECT id_gen(), ...
FROM rows WHERE _key NOT IN (SELECT _key FROM updates)
ON CONFLICT (slug) DO UPDATE SET ...
RETURNING NULL AS _key, id)
SELECT _key, id FROM updates UNION ALL SELECT _key, id FROM inserts