Как обновить частично данные в таблице базы данных ? Python
Есть метод update_user, который обновляет личную информацию о юзере. Но в метод порой не всегда будет передаваться полные данные. Как сделать так, чтобы существующее значение не перезаписывалось Null ?
class UsersDb(UsersDbAbstract, SqliteConnection):
@staticmethod
def update_user(user_id, **kwargs):
username = kwargs.get('username', None)
first_name = kwargs.get('first_name', None)
last_name = kwargs.get('last_name', None)
UsersDb._make_request('UPDATE `Users` SET `username`=?, `first_name`=?, `last_name` = ? WHERE `user_id` = ?;',
params=(username, first_name, last_name, user_id,))# если какое-то значение будет None, то таблицу запишется Null
Ответы (1 шт):
Автор решения: ganz
→ Ссылка
Предлагаю метод конструирования запроса
def update_user(user_id, **kwargs):
username = kwargs.get('username', None)
first_name = kwargs.get('first_name', None)
last_name = kwargs.get('last_name', None)
request=''
if username!=None:
request+=f'`username`={username},'
...
request=[:-1] #обрезали зпт
UsersDb._make_request('UPDATE `Users` SET '+request+' WHERE `user_id` = ?;')
Вариант множественных запросов считаю не целесообразным