首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL :不工作

SQL :不工作
EN

Stack Overflow用户
提问于 2017-03-03 18:17:19
回答 3查看 3K关注 0票数 0

我已经成功地创建了一个表,它使用:

代码语言:javascript
复制
CREATE TABLE "countermeasure" 
(
     "id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
     "name" VARCHAR, 
     "description" TEXT check(typeof("description") = 'text'), 
     "probability" DOUBLE, 
     "cost" DOUBLE
)

现在,我需要添加一个外键到它使用:

代码语言:javascript
复制
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表。

EN

回答 3

Stack Overflow用户

发布于 2017-03-03 18:37:49

正如建议的那样,add周围的括号不应该在那里。这是通常用于外键的规范。

代码语言:javascript
复制
    ALTER TABLE table1 ADD COLUMN FOREIGNID INT NOT NULL, ADD FOREIGN KEY     
    (FOREIGNID) REFERENCES table2(ID)
票数 0
EN

Stack Overflow用户

发布于 2017-03-03 19:02:14

使用以下语法:

代码语言:javascript
复制
 ALTER TABLE table1
 ADD FOREIGN KEY (P_Id)
 REFERENCES table2(P_Id)
票数 0
EN

Stack Overflow用户

发布于 2017-03-03 19:31:31

用于约束的更改(,)

代码语言:javascript
复制
ALTER TABLE countermeasure 
ADD attack_id INTEGER CONSTRAINT fk FOREIGN KEY (attack_id) REFERENCES attack(id) 

或者只是

代码语言:javascript
复制
ALTER TABLE countermeasure 
ADD attack_id INTEGER FOREIGN KEY REFERENCES attack(id)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42585869

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档