2013-03-17 4 views
1

Например, если у меня есть этот алгоритм:Как заблокировать запись в базе данных sqlite с помощью PDO?

  1. Подключение к базе данных
  2. Попробуйте выбрать некоторые данные из базы данных
  3. Если данные не существует
    1. Получить данные где-то
    2. Вставьте данные в базу данных
  4. Закрыть соединение с базой данных
  5. ли что-то с данными
  6. И мы сделали

Затем, если начинается сценарий PHP и база данных не имеет данных, возможно, генерируя его (шаг 3,1) , другой пользователь снова запускает скрипт. Тогда, я думаю, somethink как это лучше:

  1. Подключение к базе данных
  2. Попробуйте выбрать некоторые данные из базы данных (если запись заблокирована, сценарий ждет, пока он не будет разблокирован)
  3. Если данных не существует
    1. Блокировка базы данных запись
    2. Получить данные из где-то
    3. вставить данные в базу данных
    4. Разблокировка запись базы данных
  4. Закрыть Подключение к базе данных
  5. Сделайте что-нибудь с данными
  6. И мы сделали

Как я могу это сделать замок? (Я новичок в SQL, возможно, есть более подходящее имя)

ответ

1

Сделайте чтение и возможное письмо в том же transaction, то база данных будет гарантировать, что два пользователя не будут мешать друг другу.

(Продолжение на ACID properties.)

Смежные вопросы