2012-10-25 34 views
1

我有两个表中的第二个表有一个外键定义为表1的主键。在添加操作下,如何引用新添加的表1键作为表2的外键?获取键SQLite Android

// Project Table columns names 
private static final String KEY_ID = "id"; // Primary, integer 
private static final String KEY_NAME = "name"; // Unique, text 

// Images Table column names 
private static final String KEY_IM_ID = "id"; // Primary, integer 
private static final String IM_URI = "uri"; // text 
private static final String PROJ_IMAGE_ID = "proImgId"; // foreign for Projects Table 

public void addProject(Project project) { 

    SQLiteDatabase db = this.getWritableDatabase(); 

    ContentValues values_PT = new ContentValues(); // PROJECTS TABLE 
    ContentValues values_IT = new ContentValues(); // IMAGES TABLE 

    values_PT.put(KEY_NAME, project.getName()); // project name 
    // does the KEY ID get added on its own? 

    values_IT.put(IM_URI, project.getURI()); // image uri 
      values_IT.put(PROJ_IMAGE_ID, ????????); 
    } 

PROJ_IMAGE_ID需要有KEY_ID的值,但我不知道如何检索它。有没有办法做到这一点?

回答

1

如果您的ID列被声明为INTEGER PRIMARY KEY,那么它们是autoincrementing,如果您在插入时未设置它们,它们将自动获得它们的值。

要获取新记录的ID,您必须先实际插入记录;新ID是insert() function的返回值。

+0

啊好吧,所以我会把它存储在一些长期价值?例如: 'Long keyId = db.insert(PROJECT_TABLE,null,values_PT);' –

+0

是(或者如果您的记录少于40亿,则为'int')。 –