0
我試圖使用下面的代碼來確保數據庫中的參照完整性,但似乎沒有與GreenDao一起使用。我仍然可以刪除所有記錄。另一方面,當我嘗試在Sqlitemanager中刪除時,觸發器被觸發並且刪除操作失敗。greendao和sqlite觸發器
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支持觸發器,還是有其他方法來維護數據庫參照完整性?
它的工作原理!這是我愚蠢的錯誤 - 我實際上並沒有從數據庫中刪除,只是設置了一個內部的「刪除」標誌。當然,SQLite沒有爲此抱怨。 – Goran 2013-02-23 18:15:42