У меня есть скрипт python3, работающий в цикле, проверяющий наличие новых строк в базе данных mysql. Я вижу строки mysql до запуска сценария, но ничего не добавлено.
def getLatestFromDb():
global lastSqlid
dbCursor = db.cursor()
dbCursor.execute('SELECT * FROM phrases WHERE id > %s ORDER BY id ASC LIMIT 1', (lastSqlid,))
latestRow = dbCursor.fetchone()
dbCursor.close()
if (latestRow is None):
return latestRow
if (latestRow[0] > lastSqlid): # should always be
lastSqlid = latestRow[0]
return latestRow[1]
Когда добавляется новая строка (вне этого сценария), я ожидаю, что она увидит новые строки, но этоне делает. Нет проблем с просмотром данных перед запуском скрипта (т. Е. Если для lastSqlid установлено значение 1). Но, например, когда lastSqlid установлен в 17 и есть новая строка с идентификатором 18, оператор execute все еще возвращает None.