1
파이썬을 사용하여 sqlite3 테이블을 만들려고합니다. 내 코드는 다음과 같습니다.sqlite3.OperationalError : 해당 테이블이 없음
def initDb():
database = 'index.db'
conn = sqlite3.connect(database)
cur = conn.cursor()
# Initialize database
cur.execute('PRAGMA foreign_keys = ON')
cur.execute('DROP TABLE IF EXISTS modules')
cur.execute('DROP TABLE IF EXISTS files')
cur.execute('DROP TABLE IF EXISTS modulesfiles')
cur.execute(
'''CREATE TABLE modules (
id INTEGER PRIMARY KEY AUTOINCREMENT,
label TEXT UNIQUE NOT NULL
)'''
)
cur.execute(
'''CREATE TABLE files (
id INTEGER PRIMARY KEY AUTOINCREMENT,
filename TEXT UNIQUE NOT NULL
)'''
)
cur.execute(
'''CREATE TABLE modulesfiles (
module INTEGER UNIQUE NOT NULL,
file INTEGER UNIQUE NOT NULL,
PRIMARY KEY (module,file),
FOREIGN KEY (module) REFERENCES modules(id) ON UPDATE CASCADE ON DELETE CASCADE,
FOREIGN KEY (file) REFERENCES files(id) ON UPDATE CASCADE ON DELETE CASCADE
)'''
)
cur.close()
return conn
if __name__ == '__main__':
conn = initDb()
conn.commit()
conn.close()
이 코드는 처음 실행할 때 잘 실행되고 데이터베이스가 만들어집니다. 그러나 두 번째 실행하면 다음 오류가 발생합니다.
cur.execute('DROP TABLE IF EXISTS files')
sqlite3.OperationalError: no such table: main.modules
어떤 문제가 있는지 잘 모릅니다. 아무도 도와 줄 수 있니?
OH. 맞습니다. 나 한테 일어 났어야 했어. 감사! –