11

デバッガーで次の出力が得られます。どの構文が欠落しているかわかりません。

SQL コードは次のとおりです。

CREATE TABLE weeks(Week_Id INTEGER PRIMARY KEY, 
  Day TEXT, 
  Start_Time Text, 
  End_Time Text, 
  Break_Time Text );
CREATE TABLE projects(Project_Id INTEGER PRIMARY KEY,
  Name TEXT, 
  Description Text, 
  Client_Name Text, 
  Location Text );  
CREATE TABLE timesheets(Timesheet_Id INTEGER PRIMARY KEY,
  Project_Id  INTEGER,
  FOREIGN KEY (Project_Id) REFERENCES projects (Project_Id),
  Week_Id INTEGER,
  FOREIGN KEY (Week_Id) REFERENCES weeks (Week_Id));  

エラーは次のように要約されます。

12-09 12:34:20.782: E/SQLiteLog(6490): (1) near "Week_Id": syntax error
4

2 に答える 2

23

FOREIGN KEY変数が作成された後、リストをに移動してみてください。

CREATE TABLE timesheets(Timesheet_Id INTEGER PRIMARY KEY,
  Project_Id  INTEGER,
  Week_Id INTEGER,
  FOREIGN KEY (Project_Id) REFERENCES projects (Project_Id),
  FOREIGN KEY (Week_Id) REFERENCES weeks (Week_Id)); 
于 2012-12-09T13:03:22.583 に答える
5

SQLite 構文 (http://www.sqlite.org/lang_createtable.html) に従って、次のように書くこともできます。

CREATE TABLE timesheets(Timesheet_Id INTEGER PRIMARY KEY,
Project_Id  INTEGER REFERENCES projects (Project_Id),
Week_Id INTEGER REFERENCES weeks (Week_Id));

これにより、宣言と外部キーがマージされます。

于 2012-12-09T14:09:21.860 に答える