sqlite - 如何使用 sqlalchemy 和 sqlite 执行插入语句?
问题描述
我正在尝试使用 sqlalchemy 执行 upsert。这是我的代码:
def add_product(session, item):
insert_statement = insert(Product.__tablename__).values(
id=item[0],
name=item[1],
price=item[2],
units_sold=item[3]
)
do_update_statement = insert_statement.on_conflict_do_update(
price=item[2],
units_sold=item[3]
)
session.execute(do_update_statement)
class Product(Base):
__tablename__ = 'products'
id = Column(Integer, primary_key=True)
name= Column(String)
price= Column(Float)
units_sold= Column(Integer)
但是,当我尝试执行此操作时,出现以下错误
sqlalchemy.exc.ArgumentError: subject table for an INSERT, UPDATE or DELETE expected, got 'products'.
为什么会发生这种情况,我该如何解决?此外,是否有更好的选项来创建 upsert 操作?
解决方案
推荐阅读
- c# - 如何获得鼠标的圆角 x/z 位置以及某个 y 位置,然后在那里实例化一个对象?
- excel - 更改具有动态日期的工作表的名称
- python - 使用随机字符串创建mysql用户和密码
- typescript - typeorm 在 jsonb 列属性上添加索引
- ngrok - 如何从 Google Colab Notebook 中杀死 Ngrok 隧道
- python - 使用 MySQL 和 phpmyadmin 部署 Python Flask 应用程序
- swift - UITableView HeaderView 尊重可读内容指南
- c++ - 将不同类类型的数组传递给函数并循环它们
- mozilla - Thunderbird 78+:Thunderbird 插件中未定义的 Components.classes
- google-maps - 如何将最后一行谷歌表格单元格公式值转换为变量并替换谷歌文档占位符