@TheLostRoot
C# ASP.NET developer

Как написать функцию итератор?

Postgresql

Есть таблица с структурой:
terms:
id SERIAL
term VARCHAR(40)
freq BIGINT

Нужно написать функцию которая в параметр принимает значение с типом как у столбца term. И если существует запись с таким значением увеличить её значение freq на 1. Если такой записи нет создать ее и установить значение freq в 1.
Вернуть нужно значение freq.

Предполагается что на таблицу навешен уникальный индекс и записей и одинаковым значением term нет.
  • Вопрос задан
  • 76 просмотров
Пригласить эксперта
Ответы на вопрос 1
Melkij
@Melkij
PostgreSQL DBA
Это называется не итератором.

insert into terms (term, freq) values (?, 1) on conflict (term) do update freq = excluded.freq + 1 returning freq;

В функцию завернуть по желанию. 9.5+
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы