@Atageldiev
Начинающий питонист

Как изменить несколько переменных сразу?

Привет, есть класс Sqlighter, в котором методы для работы с моей БД(create_table, get_value и.т.д.). Среди них есть метод update_value():

def update_value(self, name, value, chat_id):
    """Обновляем значение переменной в таблице"""
    with self.connection:
        try:
            self.cursor.execute(f"UPDATE chats SET {name}={value} WHERE chat_id = {chat_id}")
        except:
            self.cursor.execute(f"UPDATE chats SET {name}='{value}' WHERE chat_id = {chat_id}")


который изменяет какое-то значение в БД.
Мне достаточно часто приходится обнулять несколько переменных через этот метод.

db = Sqlighter()
db.update_value("i", i + 1, chat_id)
db.update_value("pressed_satisfied", "", chat_id)
db.update_value("pressed_not_satisfied", "", chat_id)
db.update_value("satisfied_players", 0, chat_id)
db.update_value("not_satisfied_players", 0, chat_id)
db.update_value("got_answer_pressed", 0, chat_id)
db.update_value("rate_question", 0, chat_id)


Можно ли это как-то автоматизировать, чтобы не приходилось писать несколько update_value()?
Или может есть другой способ это сделать?
  • Вопрос задан
  • 186 просмотров
Решения вопроса 1
ayazer
@ayazer
Sr. Software Engineer
ну так обновите метод чтоб обновлять сразу все значения что вам нужны
UPDATE chats SET {name1}={value1}, {name2}={value2}, ...., {nameN}={valueN} WHERE chat_id = {chat_id}


https://dev.mysql.com/doc/refman/8.0/en/update.html
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы