python - SQLAlchemy 2.0 NotImplementedError:engine.execute
问题描述
NotImplementedError: This method is not implemented for SQLAlchemy 2.0.
尝试使用delete
SQLAlchemy v1.4.15 中的方法删除表时,我得到一个,。
from sqlalchemy import Column, Integer, MetaData, String, Table, create_engine, delete
engine = create_engine("sqlite+pysqlite:///:memory:", echo=True, future=True)
metadata = MetaData()
user = Table(
"users", metadata, Column("id", Integer, primary_key=True), Column("name", String)
)
metadata.create_all(engine)
engine.execute(user.delete()) # leading to Traceback
# NotImplementedError: This method is not implemented for SQLAlchemy 2.0.
解决方案
engine.execute在 SQLAlchemy 1.4 中已弃用,并将在 SQLAlchemy 2.0 中删除。您需要改为调用连接的执行方法:
from sqlalchemy import Column, Integer, MetaData, String, Table, create_engine, delete
engine = create_engine("sqlite+pysqlite:///:memory:", echo=True, future=True)
metadata = MetaData()
user = Table(
"users", metadata, Column("id", Integer, primary_key=True), Column("name", String)
)
metadata.create_all(engine)
stmt = delete(user)
with engine.connect() as conn:
with conn.begin(): # Optional: start a transaction
conn.execute(stmt)
推荐阅读
- r - 如何将 cut() 集成到 predict() 为我创建的模型预测变量
- c - 当我的数据类型为双倍时,为什么我的输出显示指数结果?
- linux-kernel - 在重新映射的地址范围内分配内存
- python - 如何删除一组字符串的第一项
- r - 关于get_mon_arrivals的R simmer包问题
- javascript - 如何使用 puppeteer 返回新页面?
- python - 单层感知器实现的问题
- node.js - 除了一个 discord.js v12 之外,如何从成员中删除所有角色?
- javascript - 如何将“奇怪的”ESRI Tile XYZ 格式转换为 XYZ
- r - 从第二个数据框 R 添加列和插入信息