@gurkin4 так и я ответил на запросах. Пов например тебе нужно где-то запускать, шифровать данные фингера при отправке, поэтому только курлой не обойтись без js.
Как увеличить цифровое значение в в строке, в колонке базы данных внутри бас?
-
Есть несколько потоков, которые работают с одной и той же строкой из базы данных. Каждый из них по успешному завершению должен увеличить цифровое значение внутри этой строки, в одной из колонок.
-
Использовать старое значение, полученное при выгрузке этой строке из базы впервые, перед работой.
Не получится, так как оно уже могло быть обновлено другими потоками -
Просто в конце работы, при успешном завершении, при увеличении значения, подгрузить блоком одной записи из базы новое значение строки и сохранить его в базу, увеличив.
Так и сделал, но почему то это значение работает криво и то уменьшается, то резко растет по не понятным причинам. -
Думал через глобальную перменную, но не выйдет, строк в которых изменяемое значение может быть много, известны становятся во время работы, так же могут появляться новые во время работы, хранить в глоабльном объекте не лучше чем 2ой метод.
-
Создавать глоабльную переменную с именем строки(уник ключом), не выйдет тоже, по понятным причинам.
Может есть метод увеличения значения в колонке строки какой то еще?
-
-
@derx2012 said in Как увеличить цифровое значение в в строке, в колонке базы данных внутри бас?:
Есть несколько потоков, которые работают с одной и той же строкой из базы данных. Каждый из них по успешному завершению должен увеличить цифровое значение внутри этой строки, в одной из колонок.
-
Использовать старое значение, полученное при выгрузке этой строке из базы впервые, перед работой.
Не получится, так как оно уже могло быть обновлено другими потоками -
Просто в конце работы, при успешном завершении, при увеличении значения, подгрузить блоком одной записи из базы новое значение строки и сохранить его в базу, увеличив.
Так и сделал, но почему то это значение работает криво и то уменьшается, то резко растет по не понятным причинам. -
Думал через глобальную перменную, но не выйдет, строк в которых изменяемое значение может быть много, известны становятся во время работы, так же могут появляться новые во время работы, хранить в глоабльном объекте не лучше чем 2ой метод.
-
Создавать глоабльную переменную с именем строки(уник ключом), не выйдет тоже, по понятным причинам.
Может есть метод увеличения значения в колонке строки какой то еще?
Попробуйте блокировать строку в базе при использовании. Добавьте дополнительную bool колонку и фильтр, чтобы брать только свободные строки. При получении строки блокируйте её и освобождайте после окончания работы.
-
-
@derx2012 said in Как увеличить цифровое значение в в строке, в колонке базы данных внутри бас?:
Просто в конце работы, при успешном завершении, при увеличении значения, подгрузить блоком одной записи из базы новое значение строки и сохранить его в базу, увеличив.
Так и сделал, но почему то это значение работает криво и то уменьшается, то резко растет по не понятным причинам.Это должно работать корректно, возможно вы забыли про приведение типов, тк получая из БД число от все равно приходит как строка и может получиться такой результат например "1" + 1 = "11"