#mysql #windows-server
#mysql #windows-server
Вопрос:
Как я могу убедиться, что определенные изменения в базе данных запускают скрипт? Я использую Windows server и mysql, и я могу использовать woocommerce api.
Комментарии:
1. Что это за скрипт? Скрипт базы данных, скрипт Windows …? База данных может иметь «триггеры», которые выполняют хранимые процедуры, но это больше похоже на то, что вы хотите, чтобы что-то происходило вне базы данных, и в этом случае вам, вероятно, просто нужно время от времени запрашивать базу данных и действовать в соответствии с найденными изменениями.
2. Речь идет о запуске файла, который работает как api для woocommerce. Таким образом, запуск cmd с помощью -> python (path) argument1 argument2 выполнит эту работу. Лучшим вариантом будет немедленный запуск после внесения изменений.
Ответ №1:
На самом деле в архитектуре реляционной базы данных не предусмотрено, чтобы база данных сообщала другим программам, что происходит в базе данных. Триггеры MySQL могут вносить изменения в базу данных — например, обновлять одну таблицу каждый раз, когда происходит вставка в другую таблицу. Но они не вызывают внешние программы.
Я думаю, что здесь у вас в основном есть два варианта.
- Что бы ни вносило изменения в ваши данные, пусть эта вещь также запускает скрипт, который вы хотите запустить.
- Пусть ваш скрипт запрашивает базу данных каждые 5 минут (или даже каждые 1 минуту) и реагирует на изменения. Вы можете найти изменения, создав столбец, который сообщает вам, когда строка была обновлена в последний раз, и используя в вашем скрипте временную метку; или создав столбец, который отмечает строки, когда они были обработаны вашим скриптом (немного надежнее).