我正在尝试了解Room数据库库。我对通过 @ForeignKey约束链接两个表的情况感到震惊。我需要的是,当删除父行时,子表中的所有子列都应设置为NULL或某个默认值。但是当我尝试使用
onDelete=SET_NULL or SET_DEFAULT with @ForeignKey
我收到以下错误:
android.database.sqlite.SQLiteConstraintException:NOT NULL约束 失败:Log.tagId
从错误中我可以看到在表定义期间子列已被设置为 NOT NULL ,有人可以说出如何将其更改为 NULLABLE 。为我们创建表格?另外,可以在列上设置标准默认值也可以。如果是这样,如何设置列的默认值?我认为应该以其他方式使用常量 SET_NULL 或 SET_DEFAULT 没有意义和目的。
谢谢!