bitniks
@bitniks
PHP/Symfony developer

Как сделать так, чтобы INSERT выполнился по результату SELECT атомарно?

Нужно выполнить INSERT, если в результате SELECT будет пусто. В SELECT идет проверка на пересечение периода дат с существующими периодами таблицы, поэтому не получится задать уникальный ключ.

Как сделать, чтобы операция прошла атомарно, чтобы несколько процессов одновременно не смогли добавить пересекающиеся периоды?
  • Вопрос задан
  • 197 просмотров
Решения вопроса 1
Matmode
@Matmode
PHP/Symfony Developer
Если позволяет тип таблицы, используйте транзакцию
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
SagePtr
@SagePtr
Еда - это святое
Проверять пересечение в триггере на добавление, к примеру.
Ответ написан
BojackHorseman
@BojackHorseman Куратор тега MySQL
...в творческом отпуске...
LOCK TABLES
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
16 июн. 2019, в 09:59
3500 руб./за проект
16 июн. 2019, в 09:46
10000 руб./за проект
16 июн. 2019, в 09:39
75000 руб./за проект