Как редактировать данные в строках sqlite3, содержащих уникальный столбец?

Рейтинг: 0Ответов: 1Опубликовано: 15.01.2023

Есть функция, которая добавляет message_id (уникальный столбец) и user пользователя в базу данных. При этом помимо двух этих столбцов имеется третий столбец status:

def add_mes(self, message_id, user):
"""Добавляем ФИО и message_id в БД"""
    self.cursor.execute("INSERT INTO `rasp` (`message_id`, `user`) VALUES (?, ?)", (message_id, user))
    return self.conn.commit()

вслед за этой функцией при нажатии клавиши должна запускаться следующая функция такая, чтобы в строке с вышеуказанным уникальным message_id отредактировался третий столбец status, а остальные данные остались теми же

def add_status(self, message_id, status):
    """Добавляем статус дом/офис в БД"""
    self.cursor.execute("INSERT INTO `rasp` (`message_id`, `status`) VALUES (?, ?)", (message_id, status))
    return self.conn.commit()

выдает ошибку

sqlite3.IntegrityError: NOT NULL constraint failed: rasp.user

Подскажите пожалуйста, как сделать правильно?

Ответы

▲ 0

решено следующим образом:

    def add_status(self, status, message_id):
        """Добавляем статус дом/офис в БД"""
        self.cursor.execute("UPDATE `rasp` SET `status` = ? WHERE `message_id` = ?", (status, message_id))
        return self.conn.commit()