Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PostgreSQL > Как запретить в триггере вставку пустого jsonb


Автор: polin11 16.10.2020, 19:16
СУБД Postgresql, нужно в триггере запретить вставку в поле пустого '{}'::jsonb

Пробовал что-то подобное, но не работает
B
Код

EGIN
   IF NEW."Param" = '{}'::jsonb THEN
      DELETE FROM "Table1" WHERE "@Key" = NEW."@Key";
      RETURN NULL;
   END IF;
   RETURN NEW;
END
;

Автор: Akina 17.10.2020, 19:22
Используй INSTEAD OF. Выполняй вставку только при выполнении требований.

Автор: LSD 23.10.2020, 16:39
Код

BEGIN
    IF NEW."Param" = '{}'::jsonb THEN
        RAISE EXCEPTION 'Param is empty';
    END IF;
    RETURN NEW;
END

И триггер должен быть before.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)