Коллеги, если все время делать upsert (insert on conflict update), будет ли это значительно хуже по производительности, чем INSERT/UPDATE соответственно? Всегда по первичному ключу
insert ... on conflict update эффективнее чем insert с последующей обработкой ошибки и updatом. Последнее в среднем будет выгоднее если конфликтов мало.
Вот если я хочу создать функцию (условно назовём её f_test) которая должна возвращать результат типа boolean и иметь выходной параметр типа UUID - я чё не могу так сделать !? Почему ошибка: ОШИБКА: результат функции должен иметь тип uuid (в соответствии с параметрами OUT) ?
Хотя по сути пофигу какой тип, просто и на такой код: CREATE OR REPLACE FUNCTION public.f_test( OUT gid varchar ) RETURNS boolean LANGUAGE plpgsql AS $function$ begin gid := '1'; return true; EXCEPTION WHEN others THEN return false; end $function$;
ошибка: SQL Error [42P13]: ОШИБКА: результат функции должен иметь тип character varying (в соответствии с параметрами OUT)
insert ... on conflict update эффективнее чем insert с последующей обработкой ошибки и updatом. Последнее в среднем будет выгоднее если конфликтов мало.
А если вместо апдейта юзать? Насколько просадка будет?
Вопрос вот какой: хочу реализовать у сущности один метод для сохранения, чтобы если в бд нету, создавала, а если есть - обновляла. Но инсертов будет мало, а апдейтов много в соотношении
Хотя по сути пофигу какой тип, просто и на такой код: CREATE OR REPLACE FUNCTION public.f_test( OUT gid varchar ) RETURNS boolean LANGUAGE plpgsql AS $function$ begin gid := '1'; return true; EXCEPTION WHEN others THEN return false; end $function$;
ошибка: SQL Error [42P13]: ОШИБКА: результат функции должен иметь тип character varying (в соответствии с параметрами OUT)
Хотя по сути пофигу какой тип, просто и на такой код: CREATE OR REPLACE FUNCTION public.f_test( OUT gid varchar ) RETURNS boolean LANGUAGE plpgsql AS $function$ begin gid := '1'; return true; EXCEPTION WHEN others THEN return false; end $function$;
ошибка: SQL Error [42P13]: ОШИБКА: результат функции должен иметь тип character varying (в соответствии с параметрами OUT)
Аааа, о блин, спасибо! А то глаза уже мыльные... Реально спасибо! Получается я могу сразу писать в OUT что нужно и не использовать такую конструкцию, что я на ходу сочинил)))
Аааа, о блин, спасибо! А то глаза уже мыльные... Реально спасибо! Получается я могу сразу писать в OUT что нужно и не использовать такую конструкцию, что я на ходу сочинил)))