2013-04-09 2 views
0

У меня возникли проблемы с поиском этого ответа в любом месте в Интернете. Я хочу, чтобы иметь возможность отслеживать строку в таблице MySQL для изменений, и когда это происходит, запустите функцию Python. Эта функция Python, которую я хочу запустить, не имеет ничего общего с MySQL; он просто дает штырек на малиновой пи. Я попытался изучить SQLAlchemy; однако я не могу определить, является ли это триггером или отображением данных. Возможно ли что-то подобное?Как выполнить функцию Python при изменении значения в таблице SQL?

Заранее благодарен!

+0

Почему бы не использовать 'pull' вместо' push'? если это определенная строка, просто запросите ее для изменений каждые X минут/секунд. Если это может быть много строк, создайте таблицу «flag» и добавьте триггеры «UPDATE», чтобы изменить флаг там, и ваше приложение python будет «опросить» для изменений и установить флаг обратно ... – van

ответ

2

сделать цикл, который проверяет значение этой строки в таблице MySQL, в момент изменения значения вызывает функцию, которую вы хотите выполнить. Вы также можете обратиться к python: how to get notifications for mysql database changes?

+0

Похоже, что UDF - это только способ сделать это. Я просто не хочу делать цикл, потому что кажется, что он может действительно обременять базу данных с накладными расходами. Я надеялся сделать это более разумно. Мое вдохновение похоже на Dropbox. Он только синхронизируется, когда он получает изменения. –

+1

Если все, что вы делаете, это 'select my_column from my_table где ...' вы на самом деле не обременяете DB – Brad

+0

Действительно? Если это так, это простое решение. –

2

Как насчет задания cron вместо создания цикла? Я думаю, что это немного лучше.