相关疑难解决方法(0)

如何删除SQLAlchemy中的表?

我想使用SQLAlchemy删除一个表.

由于我一遍又一遍地测试,我想删除表,my_users以便每次都可以从头开始.

到目前为止,我使用SQLAlchemy通过engine.execute()方法执行原始SQL :

sql = text('DROP TABLE IF EXISTS my_users;')
result = engine.execute(sql)
Run Code Online (Sandbox Code Playgroud)

但是,我想知道是否有一些标准的方法可以这样做.我唯一能找到的是drop_all(),但它删除了所有结构,而不仅仅是一个特定的表:

Base.metadata.drop_all(engine)   # all tables are deleted
Run Code Online (Sandbox Code Playgroud)

例如,给出这个非常基本的例子.它包含一个带有单个表的SQLite基础结构my_users,我在其中添加了一些内容.

from sqlalchemy import create_engine, Column, Integer, String, text
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base

engine = create_engine('sqlite://', echo=False)
Base = declarative_base()

class User(Base):
    __tablename__ = "my_users"

    id = Column(Integer, primary_key=True)
    name = Column(String)

    def __init__(self, name):
        self.name = name

# Create all the tables in the database which …
Run Code Online (Sandbox Code Playgroud)

python sqlite sqlalchemy drop-table

37
推荐指数
5
解决办法
4万
查看次数

标签 统计

drop-table ×1

python ×1

sqlalchemy ×1

sqlite ×1