Html web sql数据库外键支持

Html web sql数据库外键支持,html,foreign-keys,web-sql,Html,Foreign Keys,Web Sql,我正在Safari 5.0.5中测试这条语句,但在使用前出现了一个错误: CREATE TABLE IF NOT EXISTS Idea ( id INTEGER PRIMARY KEY, title TEXT NOT NULL, content TEXT NOT NULL, created TIMESTAMP NOT NULL, sketchID INTEGER, categoryID INTEGER NOT NULL, FOREIGN

我正在Safari 5.0.5中测试这条语句,但在使用前出现了一个错误:

CREATE TABLE IF NOT EXISTS Idea (
    id INTEGER PRIMARY KEY,
    title TEXT NOT NULL,
    content TEXT NOT NULL,
    created TIMESTAMP NOT NULL,
    sketchID INTEGER,
    categoryID INTEGER NOT NULL, 
    FOREIGN KEY (sketchID) REFERENCES (Sketch),
    FOREIGN KEY (categoryID) REFERENCES (Category));
我收到以下错误消息:

SQLStatementError 1 [DATABASE] near "(": syntax error

此SQL语句中的错误在哪里?

您需要将
替换为
之后的
类别ID INTEGER NOT NULL)
,因此您的语句将变为:

CREATE TABLE IF NOT EXISTS Idea (    
           id INTEGER PRIMARY KEY,    
           title TEXT NOT NULL,     
           content TEXT NOT NULL,    
           created TIMESTAMP NOT NULL,    
           sketchID INTEGER,    
           categoryID INTEGER NOT NULL,
           FOREIGN KEY (sketchID) REFERENCES Sketch (sketchID),    
           FOREIGN KEY (categoryID) REFERENCES Category (categoryID));
注意声明末尾的附加括号。

(添加我的评论作为答案)

正如Neil指出的,您在错误的位置关闭支架

此外,外键的语法是错误的,以下应该可以工作(前提是HTML5SQL方言符合标准)


请记住,即使使用正确的语法,外键功能也未启用,并且无法在web数据库中使用。由于sqlite3中默认禁用外键功能,因此必须通过语句“PRAGMA foreign_keys=ON”手动启用它。不幸的是,在web数据库中禁用了PRAGMA语句。
祝你好运

它应该是
REFERENCES Category(categoryID)
——至少在标准SQL中是这样。我根据您的建议编辑了我的问题,但我遇到了另一个错误。@a_horse_没有名字:您是对的,我更改了
REFERENCES
子句,它可以工作!!谢谢现在我需要一个答案来检查它作为解决方案@一匹没有名字的马:谢谢你注意到了。@VannsFannel:我添加了我的评论作为回答
CREATE TABLE IF NOT EXISTS Idea 
(    
   id INTEGER PRIMARY KEY,    
   title TEXT NOT NULL,     
   content TEXT NOT NULL,    
   created TIMESTAMP NOT NULL,    
   sketchID INTEGER,    
   categoryID INTEGER NOT NULL,
   FOREIGN KEY (sketchID) REFERENCES Sketch (sketchId),    
   FOREIGN KEY (categoryID) REFERENCES Category (categoryId)
);