相关疑难解决方法(0)

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

我有两个表:轨道和航点,一个轨道可以有很多航点,但一个航点只分配给一个轨道.

在点数表中,我有一个名为"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"
                + " );"
              );

    ...
}
Run Code Online (Sandbox Code Playgroud)

java sqlite android foreign-keys

90
推荐指数
5
解决办法
6万
查看次数

SQLite删除Cascade无法正常工作

在Android 4.2中,使用SQLite 3.7.11,当我从Quizzes表中删除一行时,下面是谁的模式,QuizQuestions表中的相应行不会被删除.

我无法弄清楚出了什么问题.我试过推杆

db.execSQL("PRAGMA foreign_keys = ON;"); 
Run Code Online (Sandbox Code Playgroud)

create table语句之前和之后.

创建表语句:

CREATE TABLE quizzes(quiz_name TEXT PRIMARY KEY COLLATE NOCASE);

CREATE TABLE quizQuestions(quiz_name TEXT, question_id INTEGER,
     PRIMARY KEY(quiz_name, question_id),
     FOREIGN KEY(quiz_name) REFERENCES quizzes(quiz_name) ON DELETE CASCADE,
     FOREIGN KEY(question_id) REFERENCES questions(question_id) ON DELETE CASCADE);
Run Code Online (Sandbox Code Playgroud)

sqlite android cascading-deletes

33
推荐指数
3
解决办法
2万
查看次数

标签 统计

android ×2

sqlite ×2

cascading-deletes ×1

foreign-keys ×1

java ×1