Syntax Error near ScanID(ScanID 附近的语法错误)
问题描述
晚上好
我一直在开发一个小型应用程序,但有点卡在 SQLite 外键约束上.基本上我所拥有的是一个HostLookuptable"
I have been working on a small application but kind of stuck at the SQLite foreign key constraint. Basically what i have is one "HostLookuptable" as
CREATE TABLE tblHostLookup (
HostID INTEGER PRIMARY KEY AUTOINCREMENT,
HostName TEXT);
还有一个ScanLookuptable"作为
And one "ScanLookuptable" as
CREATE TABLE tblScanLookup (
ScanID INTEGER PRIMARY KEY AUTOINCREMENT,
ScanDate TEXT);
然后有另一个表将在两个表之间映射为ScanHistorytable"
Then there is another table that will have mapping between two tables as "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
为什么会这样?我们不允许在一张表中有多个外键吗?在这方面的任何帮助都会很棒.
Why so? Are we not allowed to have more than one foreign key in a table? Any help in this regard would be great.
谢谢
推荐答案
不能混用表列和表约束;约束必须列在所有列之后:
You cannot mix table columns and table constraints; the constraints must be listed after all the columns:
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)
);
这篇关于ScanID 附近的语法错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:ScanID 附近的语法错误


- 导入具有可变标题的 Excel 文件 2021-01-01
- 更改自动增量起始编号? 2021-01-01
- 如何使用 pip 安装 Python MySQLdb 模块? 2021-01-01
- 使用 Oracle PL/SQL developer 生成测试数据 2021-01-01
- 以一个值为轴心,但将一行上的数据按另一行分组? 2022-01-01
- 在SQL中,如何为每个组选择前2行 2021-01-01
- 如何将 Byte[] 插入 SQL Server VARBINARY 列 2021-01-01
- SQL 临时表问题 2022-01-01
- 如何将 SonarQube 6.7 从 MySQL 迁移到 postgresql 2022-01-01
- 远程 mySQL 连接抛出“无法使用旧的不安全身份验证连接到 MySQL 4.1+"来自 XAMPP 的错误 2022-01-01