Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как запретить в триггере вставку пустого jsonb 
:(
    Опции темы
polin11
Дата 16.10.2020, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 79
Регистрация: 6.6.2015

Репутация: нет
Всего: нет



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

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

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

PM MAIL   Вверх
Akina
Дата 17.10.2020, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20468
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 3
Всего: 451



Используй INSTEAD OF. Выполняй вставку только при выполнении требований.



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
LSD
Дата 23.10.2020, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15674
Регистрация: 24.3.2004

Репутация: 3
Всего: 534



Код

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

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


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PostgreSQL | Следующая тема »


 




[ Время генерации скрипта: 0.1056 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.