1

我正在尝试了解 Room 数据库库。我对两个表通过@ForeignKey 约束链接的场景感到震惊。我需要的是,当父行被删除时,子表中的所有子列都应该设置为 NULL 或某个默认值。但是当我尝试使用

onDelete=SET_NULL or SET_DEFAULT with @ForeignKey

我收到以下错误:

android.database.sqlite.SQLiteConstraintException:NOT NULL 约束失败:Log.tagId

从错误中我可以看到在表定义期间子列已设置为NOT NULL,有人可以说如何将其更改为NULLABLE,因为房间为我们创建了表?此外,如果我们可以在列上设置标准默认值,也可以。如果是这样,如何设置列的默认值?我认为应该有其他方式常量SET_NULLSET_DEFAULT没有意义和目的。

提前致谢!

4

0 回答 0