darakanoit
@darakanoit

Состояние гонки при получении максимального значения поля number в postgresql?

Есть сущность Document, она создаётся при почти любом действии пользователя в системе
Document::where('user_id', $sale->user_id)->max('number') + 1,

Когда появляется состояние гонки, множество записей documents получают один и тот же номер. Как корректно решить данный кейс?
  • Вопрос задан
  • 164 просмотра
Пригласить эксперта
Ответы на вопрос 1
iMedved2009
@iMedved2009
Не люблю людей
create sequence user_document_number;

CREATE TABLE documents(
    id SERIAL,
    number INT NOT NULL DEFAULT(nextval('user_document_number')), 
    text text,
    PRIMARY KEY(id)
);
insert into documents(text) values('assaassa');

Тыц

Но может быть вам посмотреть в сторону UUID? Dont_use_serial
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы