#mysql #sql #automated-tests #mysql-workbench
#mysql #sql #автоматизированные тесты #mysql-workbench
Вопрос:
Я работаю в компании, и мы находимся в ситуации, когда нам приходится выполнять запросы mysql каждый день (за предыдущий день), чтобы проверить некоторые цифры. Я был назначен на это, и у меня есть около 10 запросов для запуска каждое утро. Я хочу знать, есть ли способ, чтобы я мог автоматизировать эти запросы каждый день. Я не против войти в workbench, чтобы запустить все then сразу? Единственная сложность заключается в том, что мы используем clarion date, и поскольку я должен запускать запросы за предыдущий день, дата clarion должна будет увеличиваться каждый день.
Пример одного из запросов.
select count(*) from item_sales
where code = 12
and date = 79686;
Это более старая clariondate, но она должна увеличиваться с каждым днем.
Предпочтительным ожидаемым результатом было бы получение электронной почты каждый день.
Комментарии:
1. Я бы попробовал использовать процедуру с планировщиком событий ( dev.mysql.com/doc/refman/5.7/en/events-configuration.html ).
Ответ №1:
Вы могли бы использовать простой скрипт, который бы :
- получите временную метку за предыдущий день
- преобразуйте его в формат clarion date
- запустите SQL-запросы, извлеките результаты
- отправьте электронное письмо с результатами
Когда это будет протестировано и заработает, создайте простую crontab, указав, что вы хотите, чтобы ваш скрипт запускался каждый день.
Ответ №2:
Вы можете написать ниже запрос, который обрабатывает clarion date
query="select count(*) from item_sales
where code = 12
and date = DATEDIFF(now(),'1800-12-28')";
И вы можете написать сценарий оболочки или php-скрипт и настроить cronjob для выполнения этого запроса и получения результата и отправки почты с результатом.
Пример оболочки:
data=`mysql -u $user --password=$password -e $query`;
echo "Total Count :$data" | mail -s "subject" someone@somewhere.com
Комментарии:
1. с незашифрованным паролем это довольно плохая идея
2. Что такое cronjob? Как мне это настроить? Спасибо за функции datediff, это здорово!
3. в Linux можно установить cronjobs или crontab, которые могут планировать вашу задачу в определенное время и с определенным интервалом. digitalocean.com/community/tutorials /…