SQL-функция postgres с переменными - PullRequest
0 голосов
/ 03 июля 2018

Может кто-нибудь сказать мне, почему эта функция ничего не вставляет в таблицу?

CREATE OR REPLACE FUNCTION insert_one(_temp VARCHAR(1000))
RETURNS void AS $$
DECLARE
    TEMP INT := NULL;
BEGIN
    SELECT "temptable"."id" INTO TEMP FROM "temptable" WHERE "tmpstr" = _temp;
    IF TEMP IS NULL THEN
        INSERT INTO "temptable"("tmpstr") values(_temp);
        SELECT CURRVAL("id") FROM "temptable" INTO TEMP;
    END IF;
END;
$$ LANGUAGE plpgsql;

1 Ответ

0 голосов
/ 03 июля 2018

Возможно, вы получили ошибку, потому что нет последовательности с именем id.

Вы, наверное, ищете

INSERT INTO temptable (tmpstr)
   VALUES (_temp)
ON CONFLICT DO NOTHING
RETURNING id;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...