Эмиль Гарифуллин, это такая штука, где можно прописать CREATE TABLE таблиц и свой запрос и вставить ссылку в вопрос. Тогда отвечающему проще понять, что требуется, и он может быстро приступить к решению, не потратив много времени на это. Такие сервисы есть и для JS, HTML, CSS, PHP и тд. Я всегда стараюсь, когда пишу ответ, использовать эти сервисы, чтобы автор вопроса мог сразу проверить решение
Эмиль Гарифуллин, на будущее. Еще есть специальные сайты, где можно сразу добавить запросы SQL. В итоге решение вопроса ускорится. Например, https://www.db-fiddle.com
vialonchele, когда таймер стартует, сохраняйте это время в бд. При открытии страницы получайте это время, высчитывайте разницу с текущим, и с этого начинайте отсчет
Игорь Ковалев, данные о пользователях лежат в таблице mysql.user. Нужно зайти под root или тем, у кого есть доступ к этой таблице и посмотреть, есть ли доступ нужному пользователю с хоста localhost. Если нет, то открыть. Или зайти оттуда, откуда этот доступ есть SELECT * FROM mysql.user;
Melkij, в итоге решение меня устраивает даже без обработки deadlock. Его вероятность очень низкая, только на высоких нагрузках может проявиться. Да, один процесс упадет с ошибкой, но это не так критично. Зато выполняется главной условие, отсутствие записей с пересечением периодов
Melkij, да, непростая тема и интересный вопрос. Действительно, можно попробовать словить deadlock и снова запустить транзакцию. Спасибо, буду разбираться
Melkij, спасибо, что подготовили запросы, мне осталось только выполнить :) Да, все корректно, во второй консоли зависло при выполнение select, ожидая commit в первой. Значит решает проблему
/сч\s(\d+)\s/ui