首页 > 解决方案 > 使用 sqlalchemy 引擎批量插入

问题描述

有没有办法使用引擎将值批量插入/更新到 Microsoft SQLserver 数据库中?

我已经阅读了几篇关于此的(非常)旧帖子,并且(当时)似乎不太容易做到。

例如,在某些示例中,我们需要创建一个类,将这些类添加到会话中并最后提交会话。

有没有像(伪)这样的方法:

from sqlalchemy import String, Integer, Float

values= [(1,"hello",2.5),(2,"world",10.5)] #values to insert
table = "my_schema.my_table"   #Table name
col = ["id","statement","ratio"]   #Name of the columns in the database
type = [Integer,String,Float]   #Type of each value

engine = sqlalchemy.create_engine(connection_string)

with engine.session():
  try:
     engine.bulk_insert(table,values,col,type)
  except:
     engine.rollback()

或其他东西,而不是循环engine.execute("INSERT INTO ...")

我知道我可以使用pandas.DataFrame.to_sql,但因为我希望能够在出现错误等情况下回滚。我不会使用它

标签: pythonsqlalchemy

解决方案


推荐阅读