Обновление данных (PATCH)
Как изменить существующую запись.
Перед началом работы настройте глобальные переменные %NOCODBURL%, %NOCODBTABLE% и %NOCODB_TOKEN%, как описано в статье Просмотр данных (GET).
Чем PATCH отличается от POST
| Метод | Назначение |
|---|---|
| POST | Создание новой записи. Поле Id не указываете — его выдаёт NocoDB. |
| PATCH | Частичное обновление существующей записи. В теле запроса обязательно указывается Id строки, которую нужно изменить. |
PATCH обновляет только те поля, которые вы передали в JSON. Остальные столбцы в строке остаются без изменений.
Формат запроса:
PATCH https://<вашдомен>/api/v2/tables/<идентификатортаблицы>/records
Откуда взять Id записи
Чтобы обновить строку, нужно знать её Id (целое число в NocoDB по умолчанию).
Варианты:
- Сохранить Id из ответа после POST в переменную сценария.
- Выполнить GET с фильтром (
where) и взятьIdиз первой подходящей записи в %response_data%. - Посмотреть Id в интерфейсе NocoDB или в Swagger после тестового GET.
Без корректного Id NocoDB не сможет понять, какую строку обновлять. Убедитесь, что Id — число (integer), а не строка в кавычках в логике SmartQuery, если тип поля в таблице — число.
Обновление одной записи
1. Блок "Выполнить SmartQuery"
%table% = "Database"
%url% = (
%NOCODB_URL%
+ %NOCODB_TABLE%[%table%]
+ "/records"
)
# Id строки — из GET или после POST
%record_id_to_patch% = 6
%req_body% = [
{
"Id": %record_id_to_patch%,
"First_name": "Александр",
"Phone_number": "79992345678"
}
]

2. Блок "Отправить HTTP-запрос"
- URL:
%url% - Метод:
PATCH - Тело запроса: тип "Текст":
{{ %req_body% | to_json }} - Заголовки:
| Ключ | Значение |
|---|---|
| accept | application/json |
| xc-token | %NOCODB_TOKEN% |
| content-type | application/json |
- Ответ — в переменную типа "Словарь" (или массив, если ваш сценарий так настроен).
- Статус — в переменную типа "Число".

3. Ожидаемый результат
При успехе придет статус 200, а значение строки изменится.
Таблица до изменения:

После:

Обновление нескольких записей за один запрос
В %req_body% передайте массив объектов — у каждого должен быть свой Id и набор полей для изменения.
%table% = "Database"
%url% = (
%NOCODB_URL%
+ %NOCODB_TABLE%[%table%]
+ "/records"
)
%req_body% = [
{ "Id": 5, "City": "Рязань" },
{ "Id": 6, "City": "Пермь", "Last_name": "Иванов" }
]
Поля, которые нельзя менять через PATCH
Следующие типы полей в NocoDB присваиваются автоматически и доступны только для чтения. Их передача в теле запроса может быть проигнорирована или привести к ошибке:
- Created At
- Updated At
- Id
Если PATCH возвращает ошибку, проверьте, не пытаетесь ли вы записать в такое поле.