使用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中,这似乎可以解决问题。
@Overridepublic 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