gettype или typeof в функции plpgsql

Доброго времени суток!

Подскажите пожалуйста, можно ли в теле триггерной функции на plpgsql извлечь тип поля NEW.field_name, и если это возможно, то сравнить с типом формального параметра?

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Для этого и существуют

Для этого и существуют объявления переменных с указанием типа. Чтобы при начале работе функции уже было понятно, что типы параметра и поля совпадают.

Спасибо за ответ. Я правильно

Спасибо за ответ. Я правильно Вас понял, что функций типа gettype или typeof в plpgsql нету и нужно использовать другие механизмы?

Тип поля можно получить из системной схемы БД :

Тип поля можно получить из системной схемы БД :
select * information_schema.columns
Там есть и тип поля, и размер и все остальные характеристики, тип параметра вы знаете (иначе как вы его объявляли?). Хотя задача мне не вполне ясна, вы пишите триггер для таблицы и не знаете типы полей этой таблицы?

У меня один и тот же триггер

У меня один и тот же триггер обслуживает несколько похожих таблиц, которые отличаются только типом одной колонки. Хотел по типу NEW.field_name вычислить имя таблицы (это нужно было в логике триггера), в итоге воспользовался TG_RELNAME. Спасибо за ответ.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023