Python try except 在 sql server 中删除或创建表

标签 python python-3.x try-except

我正在使用 pyodbc 创建或删除表。如果表已经存在,我写了一个函数来删除表。请看下面我的语法

try:
    cur.execute('Drop table {}'.format(table_name))
except ProgrammingError:
    cur.execute(create_table)

但是,我收到错误消息:

<ipython-input-79-fe0fe29a1e8e> in upload_to_SQL(file_name, skiprows, table_name)
 26     try:
 27         cur.execute('Drop table {}'.format(table_name))
--->28  except ProgrammingError:
 29         cur.execute(create_table)
 30 

NameError: name 'ProgrammingError' is not defined

我确认 ProgrammingError 是我删除 sql server 中不存在的表时的错误消息。任何人都知道如何修改这个?

最佳答案

您遇到的异常是 NameError,因为 ProgrammingError 未在当前范围内定义。 Exceptions 是对象,就像 python 中的其他所有对象一样,您必须从正确的位置导入或引用它们。

你可能想做

try:
    cur.execute('Drop table {}'.format(table_name))
except pyodbc.ProgrammingError:
    cur.execute(create_table)

关于Python try except 在 sql server 中删除或创建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49328814/

相关文章:

file - 如何在 Python 3 中找到 "current"源文件?

python - 尝试/异常(exception)错误Python?

python - 有活跃的 Python 聊天吗?

python - 在 PyPy 下使用 __slots__

java - 使用 System.loadLibrary 加载 Python C 扩展 DLL

python - 如何使已打开的文件可读(例如 sys.stdout)?

python - 将大于 128 的数字转换为 ASCII

python - 正则表达式替换单词中间的连字符

python - 带有空 except 代码的 Try-except 子句

python - 尝试除了不使用 python ggplot