简体   繁体   English

CREATE TABLE中FOREIGN KEY的语法错误

[英]syntax error with FOREIGN KEY in CREATE TABLE

I am getting following output on debugger. 我在调试器上得到以下输出。 I am not sure what syntax is missing. 我不确定缺少什么语法。

The SQL code is: 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));  

The error boils down to: 错误归结为:

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

Try moving your FOREIGN KEY lists to after your variables are created. 尝试在创建变量后移动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)); 

According to the SQLite syntax (http://www.sqlite.org/lang_createtable.html) you can also write something like this: 根据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));

This merges declarations and foreign keys. 这合并了声明和外键。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM