gikami
@gikami
web программист

Как сгенерировать идентификатор бонусной карты с помощью Sequelize на node.js?

Нужно сгенерировать 9-ти значное число например 000000001 сохранить (или сгенерировать) в базе при добавлении записи и далее при добавлении новых генерировать уникальное значение типа autoIncrement?
Можно ли это реализовать в Sequelize на стороне самой базы (postgresql)?
В теории можно сделать так: (0.00000001 <- Последнее значение из базы (Как то переделанная в float) + 0.00000001) * 10 но как это сделать при добавлении без лишнего запроса с получением последнего значения.

Нашел в сети чистый sql:
CREATE TABLE cpl(
  id serial,
  incre character varying default concat(substring('00000000',1,8 - length(currval('cpl_id_seq')::text)),currval('cpl_id_seq')),
  name text
);

Как такое превратить в вариант Sequelize:
const User = sequelize.define('user', {
   pointCard: {type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true}
})
  • Вопрос задан
  • 53 просмотра
Пригласить эксперта
Ответы на вопрос 1
Deissh
@Deissh
I like Python, Node.JS, Go, pain, bugs and my cat.
Sequelize умеет в Raw Queries если не хочется на JS делать 1 запрос для получения последней записи из базы и 1 запрос на обновление с сгенерированным идентификатором бонусной карты.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы