簡體   English   中英

誰能幫我解決這個 SQLite 3 Python 操作錯誤?

[英]Can anyone help me with this SQLite 3 Python Operational Error?

我正在嘗試使用 SQLite3 和 Tkinter 創建一個數據庫程序。 這是我的計算機科學 A 級課程。 每當我嘗試運行以下代碼時,都會收到此錯誤:

發生異常:“BranchID”附近的 OperationalError:語法錯誤文件“\\Code\\tables.py”,第 14 行,在 cursor.execute('''

import sqlite3
with sqlite3.connect("LeeOpt.db") as db:
    cursor = db.cursor()

cursor.execute('''
CREATE TABLE IF NOT EXISTS Branches(
BranchID INTEGER PRIMARY KEY,
Town VARCHAR(30) NOT NULL,
Postcode VARCHAR(8) NOT NULL,
Email VARCHAR(30) NOT NULL,
Telephone VARCHAR(15) NOT NULL);
''')

cursor.execute('''
CREATE TABLE IF NOT EXISTS Customer(
CustomerID INTEGER PRIMARY KEY,
BranchID INTEGER NOT NULL,
Name VARCHAR(20) NOT NULL,
Surname VARCHAR(30) NOT NULL,
DateOfBirth NOT NULL,
Town VARCHAR(30) NOT NULL,
Postcode VARCHAR(7) NOT NULL,
EmailAddress VARCHAR(30) NOT NULL,
TelephoneNo VARCHAR(12) NOT NULL,
MedicalConditions TEXT,
FOREIGN KEY BranchID REFERENCES Branches(BranchID));
''')

我正在努力理解出了什么問題。 誰能幫我解決這個問題? 謝謝。

我認為錯誤更多是縮進,試試這個:

cursor.execute('''
CREATE TABLE IF NOT EXISTS Branches(
BranchID INTEGER PRIMARY KEY,
Town VARCHAR(30) NOT NULL,
Postcode VARCHAR(8) NOT NULL,
Email VARCHAR(30) NOT NULL,
Telephone VARCHAR(15) NOT NULL);''') # moved the triple quote together with the same line

cursor.execute('''
CREATE TABLE IF NOT EXISTS Customer(
CustomerID INTEGER PRIMARY KEY,
BranchID INTEGER NOT NULL,
Name VARCHAR(20) NOT NULL,
Surname VARCHAR(30) NOT NULL,
DateOfBirth NOT NULL,
Town VARCHAR(30) NOT NULL,
Postcode VARCHAR(7) NOT NULL,
EmailAddress VARCHAR(30) NOT NULL,
TelephoneNo VARCHAR(12) NOT NULL,
MedicalConditions TEXT,
FOREIGN KEY(BranchID) REFERENCES Branches(BranchID));''') #made proper syntax changes here 

只是谷歌搜索FOREIGN KEY語法讓我得到了這個:

FOREIGN KEY(columnname) REFERENCES tablename(columnname)

所以你忘記將 BranchID 括在 () 中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM