如何使用SQLAlchemy删除这个表?



我正在尝试删除一个名为" New "的表。我目前有以下代码:

import pandas as pd
import sqlalchemy
sqlcon = sqlalchemy.create_engine('mssql://ABSECTDCS100TL/AdventureWorks?driver=ODBC+Driver+17+for+SQL+Server')3
df = pd.read_sql_query('SELECT * FROM DimReseller', sqlcon)
df.to_sql('New',sqlcon,if_exists='append', index=False)
sqlalchemy.schema.New.drop(bind=None, checkfirst=False)

我收到错误:

AttributeError: module 'sqlalchemy.schema' has no attribute 'New'

你知道我在这里错过了什么吗?谢谢。

您可以将表反映到Table对象中,然后调用其drop方法:

from sqlalchemy import Table, MetaData
tbl = Table('New', MetaData(), autoload_with=sqlcon)
tbl.drop(sqlcon, checkfirst=False)

如果您想使用原始SQL删除表,您可以这样做:

from sqlalchemy import text
with sqlcon.connect() as conn:
# Follow the identifier quoting convention for your RDBMS
# to avoid problems with mixed-case names.
conn.execute(text("""DROP TABLE "New" """))
# Commit if necessary
conn.commit()