psycopg2.errors.DuplicateTable:关系“表名”已存在,但实际上不存在

时间:2019-04-21 10:40:34

标签: python postgresql flask psycopg2

我不断收到此错误 psycopg2.errors.DuplicateTable: relation "customers" already exists 我知道这是什么意思。

问题是,当我运行程序时,实际上没有名为“ customers”的表。为了确保这一点,我创建了一个没有表的新数据库,或者在运行代码之前仔细检查了现有数据库中是否没有这样的表。我添加了打印语句以检查其冲突之处。

def createTable():
    conn = pg.connect(conn_str)
    cur = conn.cursor(cursor_factory=psycopg2.extras.DictCursor)

    sql = """
    create table customers
    ( 
       ... 
    )
    """
    print("checking 1111111")                # printed
    cur.execute(sql)

    print("checking 2222222")                # not printed
    conn.commit()

if __name__ == "__main__":
    createTable() 
    app.run(debug=True)

我可以通过在IF NOT EXISTS上添加sql来解决此问题,但我真的很想知道为什么,因为这是曾经完美运行的代码的一部分。

[edit]添加了我做的确保表不存在的操作

0 个答案:

没有答案