【问题标题】:Inserting a foreign key into a table将外键插入表中
【发布时间】:2015-10-02 11:40:06
【问题描述】:

如何在表中插入外键?我有两个表(Info 和 WorkDetails),其中 WorkDetails 有一个引用 Info 的外键。这是正确的实施方式吗?

MyDatabaseHelper.java

 public void onCreate(SQLiteDatabase db)
    {
       db.execSQL("create table "+TABLE_INFO+"(ID INTEGER PRIMARY KEY ,Name TEXT,Weather TEXT, Date DATETIME, Status Text)");
       db.execSQL("create table"+TABLE_WORKDETAILS+"(ID INTEGER PRIMARY KEY , Project TEXT, WorkDescription TEXT, Per Text, TimeIn DATETIME, TimeOut DATETIME,TotalHours DATETIME, TableInfo_id INTEGER, FOREIGN KEY(TableInfo_id)REFERENCES TABLE_INFO(ID)");
    }

WorkDetailsAPI.java

public class WorkDetailsAPI {
    private SQLiteDatabase database;
    private MyDatabaseHelper dbHelper;
    public String[] allColumns={MyDatabaseHelper.ID2,MyDatabaseHelper.Project,MyDatabaseHelper.WorkDescription,MyDatabaseHelper.Per,MyDatabaseHelper.TimeIn,MyDatabaseHelper.TimeOut,MyDatabaseHelper.TotalHours,MyDatabaseHelper.TableInfo_id};

    public WorkDetailsAPI(Context context)
                   ....
    public long insertWorkDetails(String project, String workDescription, String per,String timeIn,String timeOut,String totalHours)
    {
        database=dbHelper.getWritableDatabase();
        ContentValues values=new ContentValues();
        values.put(MyDatabaseHelper.Project,project);
        values.put(MyDatabaseHelper.WorkDescription,workDescription);
        values.put(MyDatabaseHelper.Per,per);
        values.put(MyDatabaseHelper.TimeIn,timeIn);
        values.put(MyDatabaseHelper.TimeOut,timeOut);
        values.put(MyDatabaseHelper.TotalHours,totalHours);
        database.insert(MyDatabaseHelper.TABLE_WORKDETAILS,null,values);
        database.close();
        return 0 ;

    }

}

WorkDetails.java

public void add() {
    button.setOnClickListener
        .....
            TI.insertTableInfo(name,weather,date,status);
            WD.insertWorkDetails(a,b,c,d,e,f); // Do I need to include the foreign key?
}

【问题讨论】:

  • 我想是这样,否则您如何将工作人员详细信息与 TABLE_INFO 中的相应条目链接?
  • 那么我需要包含外键'WD.insertWorkDetails(a,b,c,d,e,f);'吗?

标签: java android sqlite foreign-keys


【解决方案1】:

是的,你做对了

【讨论】:

猜你喜欢
  • 2018-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多