У меня вопрос о номере и использовании внешних ключей.
Я хотел бы добавить более одного внешнего ключа в таблицу или установить внешний ключ как ноль, но я не могу. Каждый раз, когда я пытаюсь вставить объект в базу данных, я получаю исключение android.database.sqlite.SQLiteConstraintException: FOREIGN KEY (код 787).
Я обнаружил, что родительский объект не существует, и поэтому возникают исключения.
Но иногда мне не нужен родительский объект, и «сложные данные могут существовать без объекта задачи».
Или второй сценарий.
Что если я хотел бы добавить еще один внешний ключ, и каждый раз один из них будет нулевым ??
Можно ли сделать их обнуляемыми и избежать этого исключения?
@Entity(
tableName = "complex",
foreignKeys = [ForeignKey(entity = Task::class, parentColumns = ["id"], childColumns = ["task_id"], onDelete = CASCADE)],
indices = [Index(name = "complex_task_id_index", value = ["task_id"], unique = false)]
)
data class Complex(@PrimaryKey(autoGenerate = true) var id: Long?,
@ColumnInfo(name = "instance_id") var instanceId: Long?,
@ColumnInfo(name = "definition_id") var definitionId: Long,
@ColumnInfo(name = "task_id") var taskId: Long? = null)
@Test
fun updateComplexDefinitionTest() {
val complex = Complex(id = null, instanceId = null, definitionId = 1L, taskId = null)
complexDao.insert(complex)
}
Ошибка возникает при попытке вставить объект в базу данных