删除多表记录的最佳方法是什么?

What is the best way to delete a record of multi tables?

我有一个包含三个 table 的 database,并且在所有三个 table 中都有一个 class_id 列。我想在删除 class_id 时,删除 table 中具有 class_id

的所有记录

我用了一种方法,但我不确定这种方法是否标准?

提示:class_id 在 table 中是主键,在另一个 table 中是外键

    public void DeleteClass(int classId)
{
    String query = "class_id = ?";


    OpenDatabase();

    database.delete(tblName_Class, query , new String[]{String.valueOf(classId)});
    database.delete(tblName_Student, query , new String[]{String.valueOf(classId)});
    database.delete(tblName_StudentPerformance , query , new String[]{String.valueOf(classId)});

    close();

    Toast.makeText(context, "deleted !", Toast.LENGTH_SHORT).show();
}

这取决于您的数据库结构。如果你用 ON DELETE CASCADE 定义了外键,你只需要从 Class table 中删除,它会自动从其他两个中删除。

现在,如果您还没有定义 ON CASCADE DELETE,方法是先从具有外键的 table 中删除(在您的例子中是 Student 和 StudentPerformance),然后是一个带有主键 (Class).