使用SQLite的Android中的外键约束?关于删除级联

我有两个表:航迹和航路点,一个航迹可以有多个航路点,但是航路点仅分配给1条航迹。

在点表的方式中,我有一个名为“ trackidfk”的列,一旦创建了轨道,该列就会插入track_ID,但是我没有在此列上设置外键约束。

删除轨道时,我想删除分配的航点,这可能吗?我读过有关使用触发器的信息,但我认为Android不支持它们。

要创建航点表:

public void onCreate(SQLiteDatabase db) {

db.execSQL( "CREATE TABLE " + TABLE_NAME

+ " ("

+ _ID + " INTEGER PRIMARY KEY AUTOINCREMENT, "

+ LONGITUDE + " INTEGER,"

+ LATITUDE + " INTEGER,"

+ TIME + " INTEGER,"

+ TRACK_ID_FK + " INTEGER"

+ " );"

);

...

}

回答:

支持带有on delete级联的外键约束,但是你需要启用它们。

我只是将以下内容添加到我的SQLOpenHelper中,这似乎可以解决问题。

@Override

public void onOpen(SQLiteDatabase db) {

super.onOpen(db);

if (!db.isReadOnly()) {

// Enable foreign key constraints

db.execSQL("PRAGMA foreign_keys=ON;");

}

}

我声明了我的引用列如下。

mailbox_id INTEGER REFERENCES mailboxes ON DELETE CASCADE

以上是 使用SQLite的Android中的外键约束?关于删除级联 的全部内容, 来源链接: utcz.com/qa/414700.html

回到顶部