Sqlite3操作错误:“ REFERENCES”附近的语法错误

时间:2018-12-20 15:46:17

标签: python-3.x sqlite

我有以下代码:

with sqlite3.connect('notDataBase1.db') as db:
    cursor = db.cursor()

sql = """CREATE TABLE OrderDetails
                (OrderDetailsID INTEGER,
                 OrderID INTEGER,
                 ProductID INTEGER,
                 PRIMARY KEY(OrderDetailsID),
                 FOREIGN KEY(OrderID REFERENCES
                             Orders(OrderID)),
                 FOREIGN KEY(ProductID REFERENCES
                             Products(ProductID)))"""
cursor.execute(sql)

哪个给我错误:

sqlite3.OperationalError:“ REFERENCES”附近:语法错误

我不确定这段代码昨天对我有用,但是此后就停止了工作。

有什么想法吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

您的DB是否有“订单和产品”表?

CREATE TABLE `OrderDetails` (
    `OrderDetailsID `   INTEGER,
    `OrderID `  INTEGER,
    `ProductID `    INTEGER,
    FOREIGN KEY(`ProductID `) REFERENCES `Products`(`ProductsID`),
    FOREIGN KEY(`OrderID `) REFERENCES `Orders`(`OrdersID`),
    PRIMARY KEY(`OrderDetailsID `)
);

上面的sql可以正常工作,我认为您的错误来自外键部分,不好意思是英语。如您所见,“引用”部分必须在“外键”属性之外。试试看,告诉我。

祝你愉快