Логирование особых ситуаций в хранимых процедурах postgresql
Например, в таком случае:
IF (vGroupYear is null) THEN
INSERT INTO groups_years (GroupID, Year, SpecializationID)
VALUES (vGroupID, pYear, vSpecId);
ELSEIF NOT vIsSpecMatch THEN
RETURN -1; -- это постоянно возникает если один и тот же номер группы одновременно по разным направлениям
-- нужно сделать какой-то WARNING: группа уже есть по другому направлению подготовки!
END IF;
можно писать в общий лог postgres
чтобы получались сообщения такого вида:
May 14 10:00:44 pgsql postgres[27470]: [8-1] db grade, client 10.132.108.73, user grade ERROR: 22001: value too long for type character varying(200) CONTEXT: SQL statement "UPDATE modules db grade, client 10.132.108.73, user grade LOCATION: varchar, varchar.c:624 STATEMENT: SELECT * FROM ChangeModuleName(1316, '53155', 'Специальная часть (групповое экспертирование и сравнительный анализ квалификационной и иной обеспеченности гостинично-ресторанных комплексов в различных международных локациях; коррекция формирующейся профессиограммы)') AS "Num"