亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

SQLite 外鍵為空 AndroidStudio

SQLite 外鍵為空 AndroidStudio

胡說叔叔 2022-03-10 15:51:52
我已經嘗試了我在 Stackoverflow 中找到的所有內容,但沒有任何幫助,這就是我再次詢問的原因。我嘗試在 android 中使用 sqlite 創建一個數據庫,但是當我打開我的數據庫以查看我的程序保存的內容時,我通過這個外鍵始終是 null 值。這是我的代碼:@Override    public void onCreate(SQLiteDatabase db) {        db.execSQL("create table " + TABLE_PERSON +" (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT, IDENTIFICATION INTEGER)");        db.execSQL("create table " + TABLE_LOCATION +" (ID INTEGER PRIMARY KEY AUTOINCREMENT, LOCATION TEXT, EMPLOYEE INTEGER , FOREIGN KEY(EMPLOYEE) REFERENCES person_table(IDENTIFICATION))");}sqldatabse的畫面有人能幫我嗎?方法代碼:public boolean addDataToLocation(String Location){    SQLiteDatabase db = this.getWritableDatabase();    ContentValues contentValues = new ContentValues();    contentValues.put(COLL_2, Location);    long result = db.insert(TABLE_LOCATION, null, contentValues);    if(result == -1)        return false;    else        return true;
查看完整描述

1 回答

?
慕桂英546537

TA貢獻1848條經驗 獲得超10個贊

您似乎有兩個問題/誤解。

首先是指定外鍵不會自動選擇合適的值并使用這樣的值更新列。而是定義一個外部添加了一個約束,該約束表明該值必須是存在于父表的相應列中的值。如果沒有,就會發生沖突。

因此,您必須確定一個合適的值(在您的情況下是現有的IDENTIFICATION值)。

二是Android自帶的SQLite,默認沒有開啟外鍵支持??梢酝ㄟ^使用打開外鍵支持

注意不能在事務中打開外鍵支持。因此,建議盡快打開外鍵支持。

  • 如果用作 SQLiteOpenHelper 的子類,則建議覆蓋onConfigure方法并使用setForeignKeyConstraintsEnabled方法。


查看完整回答
反對 回復 2022-03-10
  • 1 回答
  • 0 關注
  • 250 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號