Sqlite ScanID附近的语法错误

Sqlite ScanID附近的语法错误,sqlite,foreign-key-relationship,Sqlite,Foreign Key Relationship,晚上好 我一直在开发一个小应用程序,但有点陷入SQLite外键约束。基本上我有一个“HostLookuptable”作为 和一个“可扫描的”作为 然后还有另一个在两个表之间具有映射的表,即“ScanHistorytable” 但我一直在说一个错误 Syntax error near ScanID 为什么会这样?一个表中不允许有多个外键吗?这方面的任何帮助都将是巨大的 谢谢您不能混合使用表列和表约束;必须在所有列之后列出约束: CREATE TABLE tblScanHistory (

晚上好

我一直在开发一个小应用程序,但有点陷入SQLite外键约束。基本上我有一个“HostLookuptable”作为

和一个“可扫描的”作为

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

但我一直在说一个错误

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)
);