Я пытаюсь запустить "upsert" в postgres, например:
INSERT INTO my_table (
id, -- unique key
name,
hash
) VALUES (
'4b544dea-b355-463c-8fba-40c36ac7cb0c',
'example',
'0x0123456789'
) ON CONFLICT (
id
) DO UPDATE SET
name = 'example',
hash = '0x0123456789'
RETURNING
OLD.hash;
Я хотел бы вернуть предыдущее значение столбца hash
(приведенный выше пример не является допустимым запросом, поскольку OLD
не является допустимым псевдонимом таблицы). Важно отметить, что я пытаюсь найти метод, который делает это таким образом, чтобы не вызывать конфликты под нагрузкой. Это вообще возможно? Или это единственное решение для выполнения операции «чтение перед записью» в транзакции?