Skip to content
This repository was archived by the owner on Mar 2, 2025. It is now read-only.

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']) 

Clone this wiki locally