我在SQLite中有一个语法错误

时间:2015-10-30 07:29:32

标签: java android sqlite

代码

  db.execSQL("create table " + TABLE_WORKDETAILS + "( " + ID2 + " INTEGER PRIMARY KEY , Project TEXT, WorkDescription TEXT, Per Text, TimeIn DATETIME, TimeOut DATETIME, Twf_id INTEGER, FOREIGN KEY(Twf_id) REFERENCES "+TABLE_WORKFORCE+ "(ID))");
  db.execSQL("create table " + TABLE_STAFF_BENEFICT + "( "  + ID3 + " INTEGER PRIMARY KEY , Description TEXT , Amount TEXT, Twd_id INTEGER, FOREIGN KEY(Twd_id) REFERENCES + "+ TABLE_WORKDETAILS+ "(Twf_id))");

LogCat错误

  
    

java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.project.project / com.example.project.project.CameraMain}:     android.database.sqlite.SQLiteException:near" +":语法错误(代码     1):,编译时:创建表StaffBenefict(_id INTEGER PRIMARY     KEY,描述文本,数量TEXT,Twd_id INTEGER,FOREIGN     KEY(Twd_id)REFERENCES + WorkDetails(Twf_id))                     在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2413)

  

1 个答案:

答案 0 :(得分:0)

只需在REFERENCES之后删除额外的 + ,此处

  db.execSQL("create table " + TABLE_STAFF_BENEFICT + "( "  + ID3 + " INTEGER PRIMARY KEY , Description TEXT , Amount TEXT, Twd_id INTEGER, FOREIGN KEY(Twd_id) REFERENCES + "+ TABLE_WORKDETAILS+ "(Twf_id))");

必须是

  db.execSQL("create table " + TABLE_STAFF_BENEFICT + "( "  + ID3 + " INTEGER PRIMARY KEY , Description TEXT , Amount TEXT, Twd_id INTEGER, FOREIGN KEY(Twd_id) REFERENCES "+ TABLE_WORKDETAILS+ "(Twf_id))");