Вставлять в таблицу только в случае отсутствия дубликатов за последние 4 часа - PullRequest
0 голосов
/ 31 декабря 2018

У меня есть две таблицы.BUYWALLDATA3 усекается при каждом запуске программы.

BUYWALL - это место, где я хочу хранить данные, вставленные в BUYWALLDATA3, в течение 4 часов.

Иногда для одного и того же COINPAIR может использоваться несколько записей при запуске кода.Но как только эти записи были вставлены, я не хочу обновлять строки для этой COINPAIR в течение 4 часов.Когда эти 4 часа закончатся, я хочу обновить эти записи снова.

Это потому, что у меня есть другой скрипт, который анализирует данные из BUYWALL за эти 4 часа.

Есть идеи, как это сделать?

Это для бота с крипто-предупреждением.

sql = "INSERT INTO BUYWALLDATA3 (COINPAIR, BUYWALLPRICE, BUYWALLSIZEINBTC, volumethreshold, datetimeofinsert) VALUES (%s, %s, %s, %s, NOW())"
val = [
(whichmarket[f], var_element_check[0], sum_array_check, volume_threshold)
]

mycursor.executemany(sql, val)

cnx.commit()

print(mycursor.rowcount, "was inserted.")


sql = "INSERT IGNORE INTO BUYWALL (COINPAIR, BUYWALLPRICE, BUYWALLSIZEINBTC, volumethreshold, datetimeofinsert) VALUES (%s, %s, %s, %s, NOW()) "
val = [
(whichmarket[f], var_element_check[0], sum_array_check, volume_threshold)
]

mycursor.executemany(sql, val)

cnx.commit()

Вот схема обеих таблиц (они обе идентичны)

The layout of both tables

1 Ответ

0 голосов
/ 31 декабря 2018

Вы хотите периодически выполнять резервное копирование содержимого одной таблицы в другую, имеющую такую ​​же структуру.Лучше всего всегда сохранять в одну и ту же уникальную таблицу.

Ваша исходная таблица имеет поле метки времени, которое можно использовать для фильтрации записей.Похоже, вы ищете предложение WHERE, которое фильтрует данные по интервалу времени;это было бы:

WHERE datetimeofinsert > DATE_SUB(NOW(), INTERVAL 4 HOUR)
...