Согласно комментарию от @ abelisto , это лучшее решение:
UPDATE epics SET collection_ids = collection_ids || ${id}::SMALLINT
WHERE id = ${epicId}
Это более элегантно, потому что оно является родным для SQL, не имеет никакой неоднозначности типов и дажеподдерживает массив, если он необходим (ниже мы предполагаем, что ${id}
передается как массив):
UPDATE epics SET collection_ids = collection_ids || ${id}::SMALLINT[]
WHERE id = ${epicId}
Поскольку в pg-promise
массив 1,2,3
будет автоматически отформатирован как array[1,2,3]
.