MT.Checks/DB/chk/func_specs/chk_check_update.md

2.0 KiB
Raw Permalink Blame History

chk.chk_check_update

Полное обновление проверки по id (read-modify-write, db-m-8).

Параметр Тип Обяз. Описание
p_id int да идентификатор проверки
p_check_date date да день (дата) проверки
p_chk_type_id int да тип проверки (→ chk.chk_type.id)
p_chk_status_id int да статус проверки (→ chk.chk_status.id)
p_smev_message_id text да идентификатор сообщения СМЭВ (может быть NULL-значением)
p_rr_organization_id text да идентификатор организации РР (может быть NULL-значением)
p_params text да параметры проверки (JSON, textjsonb внутри, db-m-5)
p_parent_check_id int да родительская проверка (может быть NULL-значением)

Возвращает int — число строк, найденных по id и записанных (db-m-3).

Логика/особенности

  • Все поля пишутся безусловно: без COALESCE и IS DISTINCT FROM (db-m-8); NULL-семантики «не менять» нет.
  • NULL p_idRAISE EXCEPTION (db-m-4). Несуществующий id — не ошибка: возврат 0.

Тесты

Тип Условие Ожидаемый результат
1 основной сценарий существующая проверка (фикстура TEST-); все поля новые возврат 1; все поля записи = новым значениям
2 граничный случай несуществующий p_id возврат 0; записи не изменились
3 исключение NULL p_id исключение «не задан p_id»