你好,我正在使用sqlalchemy和panda处理一些数据,然后将所有数据保存到sql数据库中的表中。我正试图找到一种快速、简单、标准化的方法,根据表名检查数据库中是否存在表。
我已经找到了has_table()
函数,但没有工作示例。有人有类似给予的东西吗;发动机连接"";表名"->如果表存在,则返回true或false
使用SQLAlchemy 1.4+,您可以使用inspect
对象调用has_table
,如下所示:
import sqlalchemy as sa
# …
engine = sa.create_engine(connection_uri)
insp = sa.inspect(engine)
print(insp.has_table("team", schema="dbo")) # True (or False, as the case may be)
有关SQLAlchemy的早期版本,请参阅此处的其他答案。
所以我从第一个回复开始就基于这个想法制作了这个函数:
def table_exists(engine,name):
ins = inspect(engine)
ret =ins.dialect.has_table(engine.connect(),name)
print('Table "{}" exists: {}'.format(name, ret))
return ret