Sqlite ScanID附近的语法错误
晚上好 我一直在开发一个小应用程序,但有点陷入SQLite外键约束。基本上我有一个“HostLookuptable”作为 和一个“可扫描的”作为 然后还有另一个在两个表之间具有映射的表,即“ScanHistorytable” 但我一直在说一个错误Sqlite ScanID附近的语法错误,sqlite,foreign-key-relationship,Sqlite,Foreign Key Relationship,晚上好 我一直在开发一个小应用程序,但有点陷入SQLite外键约束。基本上我有一个“HostLookuptable”作为 和一个“可扫描的”作为 然后还有另一个在两个表之间具有映射的表,即“ScanHistorytable” 但我一直在说一个错误 Syntax error near ScanID 为什么会这样?一个表中不允许有多个外键吗?这方面的任何帮助都将是巨大的 谢谢您不能混合使用表列和表约束;必须在所有列之后列出约束: CREATE TABLE tblScanHistory (
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)
);
如果是外键限制,请尝试删除HostID外键,看看会发生什么。@MarcB它可以完美地使用一个外键…但我们确实不允许有多个外键?没有看到关于FK()数量限制的任何内容,因此,也许可以开始查看是否有任何不可见的字符可能导致解析错误,例如,在第一个HostID外键行之后。请尝试重新键入整个create查询。@MarcB否。它不起作用:(非常感谢,伙计……它起作用了!奇怪的是,我认为每一列都应该保留其外键……尽管如此,感谢您在第二种形式中清除它,FK确实保留其列。若要提问,请使用“提问”巴顿。谢谢你的帮助…别为我自己解决的另一个问题操心
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)
);