我尝试使用下面的代码来确保我的数据库中的引用完整性,但似乎不适用于 GreenDao。我仍然可以删除所有记录。另一方面,当我尝试在 Sqlitemanager 中删除时,会引发触发器并且删除操作失败。
DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, Common.DBNAME, null)
{
@Override
public void onCreate(SQLiteDatabase db) {
super.onCreate(db);
db.execSQL("CREATE TRIGGER grupe_artikli BEFORE DELETE ON groups "+
"FOR EACH ROW BEGIN "+
"SELECT CASE " +
"WHEN ((SELECT id_group FROM products WHERE id_group = OLD._id) IS NOT NULL) "+
"THEN RAISE(ABORT, 'error') "+
"END; END;");
DaoSession session = new DaoMaster(db).newSession();
}
GreenDao 是否支持触发器,或者是否有其他方法来维护数据库引用完整性?