我已经成功地创建了一个表,它使用:
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语法错误:修改表“对策”( 加上"attack_id“整数, 外键( "attack_id")引用攻击(Id)近"(":语法错误) 异常名称: NS_ERROR_FAILURE
我确信我已经很好地创建了attack表。
发布于 2017-03-03 18:37:49
正如建议的那样,add周围的括号不应该在那里。这是通常用于外键的规范。
ALTER TABLE table1 ADD COLUMN FOREIGNID INT NOT NULL, ADD FOREIGN KEY
(FOREIGNID) REFERENCES table2(ID)发布于 2017-03-03 19:02:14
使用以下语法:
ALTER TABLE table1
ADD FOREIGN KEY (P_Id)
REFERENCES table2(P_Id)发布于 2017-03-03 19:31:31
用于约束的更改(,)
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)https://stackoverflow.com/questions/42585869
复制相似问题