首页 > 解决方案 > Sqlite3 操作错误:靠近“REFERENCES”语法错误

问题描述

我有以下代码:

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”附近:语法错误

我不确定发生了什么,因为该代码昨天为我工作,但此后停止工作。

有任何想法吗?

提前致谢。

标签: python-3.xsqlite

解决方案


你的数据库有订单和产品表吗?

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 有效,我认为你的错误来自外键部分,抱歉英语不好。如您所见,References 部分必须在外键属性之外。试一试告诉我。

祝你今天过得愉快


推荐阅读