This repository was archived by the owner on Mar 2, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 17
this.db.update
do- edited this page Aug 21, 2021
·
4 revisions
Данный метод предназначен для изменения содержимого записей, заранее созданных в БД.
В простейшем варианте он обновляет запись с заданным значением первичного ключа:
await this.db.update ('tasks', {
id: 1,
id_status: 30,
dt_to: null,
}) // UPDATE tasks SET id_status = 30, dt_to = NULL WHERE id = 1
Отметим, что для полей, у которых
- задано значение
null; - в модели прописано значение по умолчанию и запрещено значение
NULL
null подставляется значение по умолчанию.
В частности, если в примере выше поле dt_to в модели определено как
dt_to: 'date=Infinity // Дата окончания',
то в результате будет исполнено
UPDATE tasks SET id_status = 30, dt_to = Infinity WHERE id = 1
Впрочем, набор полей для выражения WHERE можно задать явно:
await this.db.update ('orgs', {
inn: '11111111111',
kpp: '111111111',
label: 'ЗАО "ВЕКТОР"',
}, ['inn', 'kpp'])
Этот ключ не обязан идентифицировать запись однозначно. Массовые обновления оформляются аналогично:
await this.db.update ('employees', {
id_dep: 13,
dt_fired: new Date (),
}, ['id_dep'])
Как и this.db.insert, this.db.update предполагает пакетный режим исполнения:
await this.db.update ('users', [
{login: 'admin', id_role: 1},
{login: 'user', id_role: 2},
], ['login'])