我无法连接到使用 SQLAlchemy 在 SQL 服务器上创建的临时表。
我连接到服务器:
engine = create_engine(URL, poolclass=StaticPool)
Run Code Online (Sandbox Code Playgroud)
我用来自熊猫数据帧的数据填充临时表:
df_tmp.to_sql('#table_test', con=engine)
Run Code Online (Sandbox Code Playgroud)
该表存在于服务器上:
res = engine.execute('SELECT * FROM tempdb..#table_test')
print(res)
Run Code Online (Sandbox Code Playgroud)
它返回我的数据元组列表。但是当我尝试创建一个 SQLAlchemy 表时,它失败了NoSuchTableError:
from sqlalchemy import create_engine, MetaData, Table
metadata = MetaData(engine)
metadata.create_all()
table = Table('#table_test', metadata, autoload=True, autoload_with=engine)
Run Code Online (Sandbox Code Playgroud)
我也试过这个,它给出了同样的错误:
table = Table('tempdb..#table_test', metadata, autoload=True, autoload_with=engine)
Run Code Online (Sandbox Code Playgroud)
而且我还尝试使用 SQL 命令创建一个空白表,当我尝试使用 SQLAlchemy 读取它时会出现相同的错误:
engine.execute('CREATE TABLE #table_test (id_number INT, name TEXT)')
Run Code Online (Sandbox Code Playgroud)
SQLAlchemy 是否支持临时表?如果是这样,这里出了什么问题?如果可能,我希望将临时表作为 sqlalchemy.schema.Table 对象,因为它适合我的所有其他代码。