Подскажите пожалуйста, можно ли в теле триггерной функции на plpgsql извлечь тип поля NEW.field_name, и если это возможно, то сравнить с типом формального параметра?
Тип поля можно получить из системной схемы БД :
select * information_schema.columns
Там есть и тип поля, и размер и все остальные характеристики, тип параметра вы знаете (иначе как вы его объявляли?). Хотя задача мне не вполне ясна, вы пишите триггер для таблицы и не знаете типы полей этой таблицы?
У меня один и тот же триггер обслуживает несколько похожих таблиц, которые отличаются только типом одной колонки. Хотел по типу NEW.field_name вычислить имя таблицы (это нужно было в логике триггера), в итоге воспользовался TG_RELNAME. Спасибо за ответ.
Для этого и существуют
Для этого и существуют объявления переменных с указанием типа. Чтобы при начале работе функции уже было понятно, что типы параметра и поля совпадают.
Спасибо за ответ. Я правильно
Спасибо за ответ. Я правильно Вас понял, что функций типа gettype или typeof в plpgsql нету и нужно использовать другие механизмы?
Тип поля можно получить из системной схемы БД :
Тип поля можно получить из системной схемы БД :
select * information_schema.columns
Там есть и тип поля, и размер и все остальные характеристики, тип параметра вы знаете (иначе как вы его объявляли?). Хотя задача мне не вполне ясна, вы пишите триггер для таблицы и не знаете типы полей этой таблицы?
У меня один и тот же триггер
У меня один и тот же триггер обслуживает несколько похожих таблиц, которые отличаются только типом одной колонки. Хотел по типу NEW.field_name вычислить имя таблицы (это нужно было в логике триггера), в итоге воспользовался TG_RELNAME. Спасибо за ответ.