2015-03-07 2 views
1

Я хотел бы обновить текстовое поле в базе данных sqlite, созданной с использованием библиотеки peewee python. В частности, я хотел бы использовать атомные обновления что-то Peewee как:строки конкатенации с атомным обновлением в peewee с использованием sqlite db

query = Table.update(textfield = Table.textfield + 'string').where(some condition) 

query.execute() 

Этот тип обновления прекрасно работает для числовых полей, но не для текстовых полей. Я предполагаю, что может быть способ сделать это с помощью sqlite || оператор, но поскольку sql в целом для меня несколько новичок, я не могу это понять.

ответ

3

Вы можете использовать concat оператор:

query = Table.update(textfield=Table.textfield.concat('string')).where(whatever) 
query.execute() 

Оператор concat будет использовать || под капотом.

+1

Спасибо, что сработало отлично. Один последующий вопрос. Как я могу обработать нулевое поле. Я нашел ссылку на COALESCE в другом потоке переполнения стека, но я не уверен, как добавить его сюда. – nihiladrem