[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Обращение к таблице 2+ пользователей одновременно
SmorodinKA
Добрый день. Есть функция, которая увеличивает значение (int) в таблице БД. Что будет, если одновременно к этой функции обратятся два и более человек. Ведь скрипт сначала берет значение из БД, увеличивает его на 1, и обновляет таблицу. Спасибо.
TranceIT
Насколько мне помнится, то в базе все события выстраиваются в очередь.

_____________
Безвозмездно помогаю только тем, кто сам пытается что-то сделать.

Остальным за WMR
Даже если там 10 строк кода!
Даже если мне это ничего не стоит!
Даже если вы нуб!

user posted image
waldicom
Используй транзакции, если думаешь, что будет конкурирующий доступ к данным

_____________
Свои мозги еще никто не отменял.
Телепатов нету.
Valick
Цитата
Есть функция, которая увеличивает значение (int) в таблице БД

для этого в БД есть автоинкремент, используйте его

_____________
Стимулятор ~yoomoney - 41001303250491
TranceIT
Цитата (Valick @ 12.03.2014 - 21:11)
для этого в БД есть автоинкремент, используйте его

Вообще-то это называется сиквенс.
В мускул клиентах написание сиквенсов для ид автоматизировано и упрощено до чекбокса. В постгресе сиквенсы ручками пишутся.

_____________
Безвозмездно помогаю только тем, кто сам пытается что-то сделать.

Остальным за WMR
Даже если там 10 строк кода!
Даже если мне это ничего не стоит!
Даже если вы нуб!

user posted image
sergeiss
Цитата (TranceIT @ 13.03.2014 - 12:39)
В постгресе сиквенсы ручками пишутся.

Тоже автоматически ;)

Если я пишу, например,
create table first
(
id serial,
name_main text
)

то сиквенс создается автоматически.
Если таблица создается через pgAdmin, то он сообщает: "NOTICE: CREATE TABLE will create implicit sequence "first_id_seq" for serial column "first.id"". Если не через эту прогу, то нотиса не видно, но сиквенс всё равно создается.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
TranceIT
Цитата (sergeiss @ 13.03.2014 - 10:49)
Тоже автоматически wink.gif

А вот и нет. Все зависит от версии и от лени админа.

_____________
Безвозмездно помогаю только тем, кто сам пытается что-то сделать.

Остальным за WMR
Даже если там 10 строк кода!
Даже если мне это ничего не стоит!
Даже если вы нуб!

user posted image
waldicom
Цитата (Valick @ 12.03.2014 - 20:11)
для этого в БД есть автоинкремент, используйте его

А как в одной таблице сделать два autoincrement поля? И для чего?

_____________
Свои мозги еще никто не отменял.
Телепатов нету.
Valick
Цитата
Ведь скрипт сначала берет значение из БД, увеличивает его на 1, и обновляет таблицу

что это за значение? какую роль оно выполняет?
Цитата
А как в одной таблице сделать два autoincrement поля? И для чего?

для чего, это не ко мне вопрос.
про два я тоже не говорил


_____________
Стимулятор ~yoomoney - 41001303250491
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.