我不断收到此错误
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]添加了我做的确保表不存在的操作