# `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, `text` → `jsonb` внутри, db-m-5) | | `p_parent_check_id` | int | да | родительская проверка (может быть NULL-значением) | **Возвращает** `int` — число строк, найденных по `id` и записанных (db-m-3). ## Логика/особенности - Все поля пишутся безусловно: без `COALESCE` и `IS DISTINCT FROM` (db-m-8); NULL-семантики «не менять» нет. - NULL `p_id` → `RAISE EXCEPTION` (db-m-4). Несуществующий `id` — не ошибка: возврат 0. ## Тесты | № | Тип | Условие | Ожидаемый результат | |---|---|---|---| | 1 | основной сценарий | существующая проверка (фикстура `TEST-`); все поля новые | возврат 1; все поля записи = новым значениям | | 2 | граничный случай | несуществующий `p_id` | возврат 0; записи не изменились | | 3 | исключение | NULL `p_id` | исключение «не задан p_id» |