使用python、sqlalchemy和sql数据库轻松检查表是否存在

2024-06-01 08:44:02 发布

您现在位置:Python中文网/ 问答频道 /正文

您好,我正在使用sqlalchemy和pandas处理一些数据,然后将所有内容保存到sql数据库中的表中。我试图找到一种快速、简单、标准化的方法,根据表名检查数据库中是否存在表

我找到了has_table()函数,但没有工作示例。是否有人有类似“发动机连接”之类的东西;“表名”->;如果表存在,则返回true或false


Tags: 数据方法函数gt数据库falsetrue示例
2条回答

使用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的早期版本,请参见另一个答案here

所以我根据第一次休息时的想法制作了这个函数:

def table_exists(engine,name):
    ins = inspect(engine)
    ret =ins.dialect.has_table(engine.connect(),name)
    print('Table "{}" exists: {}'.format(name, ret))
    return ret

相关问题 更多 >