我想使用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)