SQL:Alter Table Add不起作用



我已经成功地创建了一个表:

CREATE TABLE "countermeasure" 
(
     "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
     "name" VARCHAR, 
     "description" TEXT check(typeof("description") = 'text'), 
     "probability" DOUBLE, 
     "cost" DOUBLE
)

现在我需要使用以下方式添加一个外键:

ALTER TABLE "countermeasure" 
(ADD "attack_id" INTEGER,
 FOREIGN KEY ( "attack_id") REFERENCES attack(id)
)

,但它抱怨错误:

sqlitemanager:可能的SQL语法错误:Alter表"对策"(
添加" Attack_id"整数,
外键(" Attact_id")参考攻击(ID))[靠近"(":语法错误))
异常名称:ns_error_failure

我确定我已经很好地创建了attack表。

使用以下语法:

 ALTER TABLE table1
 ADD FOREIGN KEY (P_Id)
 REFERENCES table2(P_Id)

所建议的,围绕添加的括号不应在那里。这是外国键通常用于的规范

    ALTER TABLE table1 ADD COLUMN FOREIGNID INT NOT NULL, ADD FOREIGN KEY     
    (FOREIGNID) REFERENCES table2(ID)

Change(,)的约束

ALTER TABLE countermeasure 
ADD attack_id INTEGER CONSTRAINT fk FOREIGN KEY (attack_id) REFERENCES attack(id) 

或只是

ALTER TABLE countermeasure 
ADD attack_id INTEGER FOREIGN KEY REFERENCES attack(id)