@saniii

Правка таблицы в БД (MySQL) одновременно несколькими пользователями?

Объясните как решаются проблемы с одновременной записью в одну таблицу несколькими пользователями и вот что интересует:
1. Есть несколько PHP скриптов которые обращаются к таблице MySQL одновременно (учетка у скриптов одна на всех, скажем user). Будут ли коректно записываться данные если это разные строки, один скрипт правит строку с id 1, а второй с id 2?

2. Та же ситуация: несколько PHP скриптов которые обращаются к таблице MySQL одновременно, но правят одну строку. Правка заключается в прибавлении к существующему числу другого. Как в данном случае быть?

3. Есть таблица суточных отчетов, если дата изменилась во время выполнения скрипта то он создает новую строку с новой датой. Как быть чтобы скрипты не конфликтовали в данном случае?
  • Вопрос задан
  • 450 просмотров
Решения вопроса 1
deepblack
@deepblack
1. будут корректно обработаны
2. Посмотрите тут
3. Непонятно что вы имеете ввиду.

upd:
3. 2 скрипта однавременно (возможно) пытаются создать новыую запись с одинаковой датой(уникальное значение это дата), как этого избежать?

CREATE TABLE playground (
    id serial PRIMARY KEY,
    install_date date UNIQUE,
    type varchar (50) NOT NULL
);

INSERT INTO playground (install_date, type) VALUES ('2019-11-06', 'action');


А теперь попробуй несколько раз выполнить INSERT с этими данными, и сравни результат между попытками.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
1. Будут
2. Update table set field=field+? where Id=?
3.Не должно быть никаких таблиц с суточными отчётами.
База данных - не бумажная картотека твоего дедушки. Все отчёты генерируются на лету, из исходных данных.

У тебя должны быть не апдейты, а инсерты. И и дата не уникальная.
Потом по всем вставленным строкам на эту дату делаешь свой отчет.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы