python-3.x - 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”附近:语法错误
我不确定发生了什么,因为该代码昨天为我工作,但此后停止工作。
有任何想法吗?
提前致谢。
解决方案
你的数据库有订单和产品表吗?
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 部分必须在外键属性之外。试一试告诉我。
祝你今天过得愉快
推荐阅读
- java - 如何将客户端证书添加到 Spring WebClient?
- sqlite - TEXT 列上 WHERE 子句的奇怪 sqlite3 行为
- bash - 如何用命令行参数替换bash变量
- grafana - 用于 grafana 的 influxdb 中两个不同查询的单行查询百分比
- amazon-web-services - 配置输出 S3 存储桶以允许 AWS Transcribe 存储转录结果时出现问题
- java - EventQueue.invokeLater() 有一些错误
- makefile - 使用 Jobs (Multicore) 标志会导致 Makefile 编译失败
- scala - 交错多个流
- wordpress - 允许用户选择他们喜欢的类别并保存它们
- excel - 允许 Excel 宏在受保护的工作表上运行