Evgeniy
ты вставил session_id
Evgeniy
что ты хочешь то ?
Evgeniy
юзай транзакции
W.Ed.
ну все правильно
ну и? вопрос не в том, что правильно, а в том как исправить
Evgeniy
и комить данные
Evgeniy
ну и? вопрос не в том, что правильно, а в том как исправить
ты написал что у тебя в pgsql не работает constraint
Kirill
попробуй вставить session_id = 1 например и опять его вставить если дубликат заедет, проблема в таблице если не заедет - в логике
Evgeniy
так вот он у тебя работает
Evgeniy
можно null вставлять
Evgeniy
так надежней
W.Ed.
до этого была та же таблица в мускуле, но там по ходу была блокировка таблицы на чтение (MyISAM) во время записи
Evgeniy
ну мы твой код не видим
Evgeniy
как мы скажем что у тебя не так?
Evgeniy
если ты даже структуру таблицы с горем по полам показал
Evgeniy
или ты расчитываешь что есть спец команда makeMeHappy и сразу все заработает как надо, как у тебя в голове?
W.Ed.
код мало чем поможет, вы такого не видели, уверяю)
Evgeniy
так чем мы можем помочь?
Kirill
так null же вроде можно дублировать даже если колонка unique
Kirill
можно null вставлять
Kirill
или я не прав?
Evgeniy
так null же вроде можно дублировать даже если колонка unique
но потом он пусть переставляет как хочет
Evgeniy
на нужное значение
Kirill
я хочу что бы он наоборот проверил типа работает ли constraint на уникальность )
W.Ed.
мне по сути нужна блокировка ряда на чтение
Evgeniy
да я почти на 100% уверен что работает
W.Ed.
или типа того
Oleksii
лучше nodejs
подскажи чтотогда лучше использывать
Oleksii
точнее какую библиотеку
Evgeniy
мне по сути нужна блокировка ряда на чтение
https://www.postgresql.org/docs/9.1/static/explicit-locking.html
W.Ed.
хотя пока ряд не существует, что блокировать :/
Oleksii
эм, пакет для npm какой лучше использывать?
Oleksii
спасибо
Evgeniy
у тебя race condition
W.Ed.
они же разные все, кому какой удобнее
Anonymous
Веб-сервер штоле поднять не можешь?
Evgeniy
ты хочешь сохранить 2 одно и тоже значение с одинаковым session_id
W.Ed.
у тебя race condition
да, очевидно
Evgeniy
это проблема
Evgeniy
надо сделать так чтобы он дважды не сохранял запись с этим session_id
Evgeniy
база данных отрабатывает так как надо
W.Ed.
вообще я был бы не против replace, наверное или ON DUPLICATE KEY как в мускуле
Evgeniy
но это же костыль
Evgeniy
в session_id Это id куки
Evgeniy
с пользователя
Evgeniy
либо она есть в таблице либо нет
W.Ed.
ну а что еще сделать с рядом, которого нет?
Evgeniy
и записываешь новую
Evgeniy
ну так человек когда приходит и присылает куку
Evgeniy
пытаешься выдернуть этот session_id
Evgeniy
находишь аторизуешь пользователя
W.Ed.
понимаешь, там 5 страниц пытаются сделать селект+инсерт
Evgeniy
не находишь удаляешь куку человеку чтобы не мешалась ну и по необходимости на авторизацию кидаешь чтобы вошел на сайт
Evgeniy
да хоть 25 страниц
W.Ed.
и одна из них успевает сделать инсерт первой после того, как остальные удостоверились, что ряда нет
Evgeniy
зачем они проверяют ?
Evgeniy
что ряда нет
Evgeniy
этой проверки быть не должно наверно
W.Ed.
чтобы делать апдейт в противном случае
Evgeniy
есть пользователь есть его session_id и другие параметры
Evgeniy
не кажется ли должно быть отдельная команда на получение session_id
(;¬_¬)
а нет в постгре insert on duplicate update ?
W.Ed.
т.е. есть поля с начальными данными, есть поля с последними
Evgeniy
а нет в постгре insert on duplicate update ?
нету вроде но есть костыли
(;¬_¬)
это же наверное самое простое решение
Evgeniy
https://wiki.postgresql.org/wiki/UPSERT
Evgeniy
но это с 9.5
(;¬_¬)
https://stackoverflow.com/a/1109198
W.Ed.
спасибо, почитаю пока это
(;¬_¬)
ну он же не говорит какая у него версия... по крайне мере я пропустил этот пост
W.Ed.
9.4
Evgeniy
ну мне кажется что он хочет что то специфичное
Evgeniy
имхо проблему разрешить на сервере приложения можно
W.Ed.
ну мне кажется что он хочет что то специфичное
нет, просто это работает через абстракцию, а там сложнее изменить
Jack
Привет всем. Как разделить 1 час на 3 части? Например: 10:15 10:30: 10:45