sqlalchemy литеральный текст добавлен к вставке

Я пытаюсь заставить sqlalchemy принять более сложное поведение на вставке, и не могу придумать идиоматический способ сделать это. Чтобы упростить вещи, я просто пытался добавить буквальную строку в конец запроса, но не могу найти правильный способ сделать это. Я видел использование функции text() для добавления строковых литералов к запросам, но это не сработает так, как я это использую. Вот пример того, что я пытаюсь сделать (это не скомпилируется, но по крайней мере отражает идею...)

from sqlalchemy import *

metadata = MetaData()

user = Table('user', metadata,
    Column('user_id', Integer, primary_key = True),
    Column('likes', Integer, nullable = False),
    Column('last_liked', TIMESTAMP, nullable = False),
)

userid = 1
newlikes = 5

user.insert().values(user_id=userid, likes=newlikes) + 
    text("ON DUPLICATE KEY UPDATE last_liked=NOW(), likes = likes + " + newlikes)

Любые рекомендации будут оценены.

0 ответов

Другие вопросы по тегам