sqlite3.OperationalError:靠近“BatchID”:语法错误

Posted

技术标签:

【中文标题】sqlite3.OperationalError:靠近“BatchID”:语法错误【英文标题】:sqlite3.OperationalError: near "BatchID": syntax error 【发布时间】:2019-11-14 17:42:32 【问题描述】:

为什么我收到错误“sqlite3.OperationalError: near "BatchID": syntax error"?

cursor.execute('''CREATE TABLE IF NOT EXISTS OrderBatch(
                    OrderBatchID INTEGER PRIMARY KEY,
                    Quantity INTEGER,
                    OrderID INTEGER,
                    FOREIGN KEY (OrderID) REFERENCES OrderTable(OrderID),
                    BatchID INTEGER,
                    FOREIGN KEY (BatchID) REFERENCES Batch(BatchID)
                    )''')

【问题讨论】:

【参考方案1】:

将外键的定义移到语句的末尾。

CREATE TABLE IF NOT EXISTS OrderBatch(
                    OrderBatchID INTEGER PRIMARY KEY,
                    Quantity INTEGER,
                    OrderID INTEGER,
                    BatchID INTEGER,
                    FOREIGN KEY (OrderID) REFERENCES OrderTable(OrderID),
                    FOREIGN KEY (BatchID) REFERENCES Batch(BatchID)
                    )

【讨论】:

以上是关于sqlite3.OperationalError:靠近“BatchID”:语法错误的主要内容,如果未能解决你的问题,请参考以下文章

sqlite3.OperationalError ...我的sqlite语法有啥问题?

sqlite3.OperationalError:靠近“%”:语法错误

django:sqlite3.OperationalError:没有这样的表

sqlite3.OperationalError:表测试没有名为 python 的列错误

从给定范围中选择行时,sqlite3.OperationalError“SQL 变量太多”

sqlite3 operationalerror异常