gpt4 book ai didi

sqlite - ScanID附近的语法错误

转载 作者:行者123 更新时间:2023-12-03 18:57:02 24 4
gpt4 key购买 nike

晚上都

我一直在研究一个小型应用程序,但是有点卡在SQLite外键约束上。基本上我有一个“ HostLookuptable”作为

CREATE TABLE tblHostLookup ( 
HostID INTEGER PRIMARY KEY AUTOINCREMENT,
HostName TEXT);


还有一个“ ScanLookuptable”

CREATE TABLE tblScanLookup ( 
ScanID INTEGER PRIMARY KEY AUTOINCREMENT,
ScanDate TEXT);


然后还有另一个表,两个表之间的映射为“ ScanHistorytable”

CREATE TABLE tblScanHistory (
ScanHistoryID INTEGER PRIMARY KEY AUTOINCREMENT,
HostID INTEGER,
FOREIGN KEY(HostID) REFERENCES tblHostLookup(HostID),
ScanID INTEGER,
FOREIGN KEY(ScanID) REFERENCES tblScanLookup(ScanID));


但我一直在说一个错误

Syntax error near ScanID


为什么这样?我们不允许一个表中有多个外键吗?在这方面的任何帮助将是巨大的。

谢谢

最佳答案

您不能混合使用表列和表约束。约束必须在所有列之后列出:

CREATE TABLE tblScanHistory (
ScanHistoryID INTEGER PRIMARY KEY AUTOINCREMENT,
HostID INTEGER,
ScanID INTEGER,
FOREIGN KEY(HostID) REFERENCES tblHostLookup(HostID),
FOREIGN KEY(ScanID) REFERENCES tblScanLookup(ScanID)
);


或者,更简单:

CREATE TABLE tblScanHistory (
ScanHistoryID INTEGER PRIMARY KEY AUTOINCREMENT,
HostID INTEGER REFERENCES tblHostLookup(HostID),
ScanID INTEGER REFERENCES tblScanLookup(ScanID)
);

关于sqlite - ScanID附近的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17817077/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com