2017-03-03 10 views
0

SQLエラー:近い「」threatAgent_id「」:私はテーブルを作るために、次のクエリを実行しようとしています構文エラー

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

     "asset_id" INTEGER , 
     FOREIGN KEY ("asset_id") REFERENCES asset(id) , 

     "threatAgent_id" INTEGER , 
     FOREIGN KEY ("threatAgent_id") REFERENCES threatAgent(id) , 

     "vulnerability_id" INTEGER , 
     FOREIGN KEY ("vulnerability_id") REFERENCES vulnerability(id) 

) ; 

が、それは私が作った

error: near ""threatAgent_id"": syntax error 

と文句を言いだから、

CREATE TABLE "threatAgent" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL , "means" TEXT check(typeof("means") = 'text') , "motivation" VARCHAR, "capabilities" VARCHAR, "opportunities" VARCHAR) 

はなぜそれが不平を言っている:次のクエリを使用してthreatAgent

答えて

1

列定義と制約定義の交錯が嫌いです。だから、最初の制約に達すると、それ以上の列は存在しないと考えられます。

解決するには、すべての制約定義を下に移動します。

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

     FOREIGN KEY ("asset_id") REFERENCES asset(id) , 
     FOREIGN KEY ("threatAgent_id") REFERENCES threatAgent(id) , 
     FOREIGN KEY ("vulnerability_id") REFERENCES vulnerability(id) 

) ; 
関連する問題