为什么SQLite(Python)说表"ORGANIZATION"已经存在?



SQLite表示;组织;已存在。

这是我的代码:

import sqlite3
con = sqlite3.connect('example4.db')
cur = con.cursor()
# Create table
cur.execute('''CREATE TABLE ORGANIZATION
(ID int, NAME text, SURNAME text, NICKNAME text, ADDRESS chair(250), PHONE 
real, MAIL text, WEB text, INFO chair(250) )''')
# Insert a row of data
cur.execute("INSERT INTO ORGANIZATION VALUES (1, 'John', 'Stockton', 'JS', 'Nip and Tack 15', 
00000000000, 'info@info.xx',' https://www.info.xx', '-' )")
# Save (commit) the changes
con.commit()
con.close()
con = sqlite3.connect('example4.db')
cur = con.cursor()
for row in cur.execute('SELECT * FROM ORGANIZATION ORDER BY ID'):
print(row)

我的预期结果是打印带有表数据的行:

1, 'John', 'Stockton', 'JS', 'Nip and Tack 15', 00000000000, 'info@info.xx',' https://www.info.xx', '-'

每次运行代码时,都会执行CREATE TABLE ...语句并尝试创建表
如果表已经存在,则会得到错误:

。。。表";组织;已存在。。。

您可以在语句中使用IF NOT EXISTS

sql = """
CREATE TABLE IF NOT EXISTS ORGANIZATION(
ID int, NAME text, SURNAME text, NICKNAME text, ADDRESS text, 
PHONE real, MAIL text, WEB text, INFO text)
"""
cur.execute(sql)

此外,没有数据类型chair(我怀疑你指的是char,它也不是SQLite的数据类型之一(,所以我改为TEXT

相关内容

最新更新