Как получить и тут же удалить содержимое ячейки MySQL из Python3?
Есть БД MySQL
и Python3
программа, работающая с этой БД. Так же есть некоторая последовательность чисел, которая должна быть неким образом записана в БД (я предполагаю, что существует возможность того, что между получением чисел, и их обработкой программа может быть перезапущена/закрыта, поэтому они хранятся в БД).
В программе есть 2 функции, одна из которых периодически дописывает новое число в последовательность, другая же должна в определенный момент обработать всю записанную на данный момент последовательность, но лишь 1 раз, поэтому я хочу тут же удалить последовательность из БД.
Пытаюсь понять как это оформить, чтобы превентивно устранить вероятность варианта, когда сначала функция2
получает, потом функция1
дописывает туда число, и потом удаляется содержимое, т.е. что одно или более чисел, дописанных в конец последовательности будет утеряно.
Как будет правильнее - отправить из Python команды SELECT
и UPDATE SET NULL
в MySQL
так, чтобы MySQL
выполнил их сразу подряд, отложив выполнение других команд с ячейкой на после? Если это возможно? Или это лучше "во избежание" оформлять полноценной таблицей, с Index
и удалением по конкретным Index
при том, что когда чего то добавляется у него уникальный еще больший Index
? Не хотелось бы, как бы целая таблица против 1 ячейки...
Как я себе это, примерно, понимаю (я это пока что не тестировал, возможность будет сильно позже, но это же не мешает обдумывать?). Возможно ли лучше?
update_query = """
SELECT column
FROM table
WHERE
row = 'what_I_need'
UPDATE
table
SET
column = NULL
WHERE
row = 'what_I_need'
"""
...
with connection.cursor() as cursor:
for result in cursor.execute(update_query, my_string):
print(my_string)