gpt4 book ai didi

android - 主动 Android onDelete 和 onDelete

转载 作者:行者123 更新时间:2023-11-29 17:34:20 27 4
gpt4 key购买 nike

我使用 Active Android在我的项目中。试图了解更多关于它的信息,特别是关于表项属性的信息 - 类似于 ForeignKeyAction。

如果发生删除操作,我希望我的模型只删除它自己,而不是删除它的子项。我找到的代码 -

@Column(name = "Category", onUpdate = ForeignKeyAction.CASCADE, onDelete = ForeignKeyAction.CASCADE)
public Category category;

但我不知道什么标志回答什么属性 - 有很多 -表单文档

public enum ForeignKeyAction {
SET_NULL, SET_DEFAULT, CASCADE, RESTRICT, NO_ACTION
}

任何人都可以发布详细解释的链接,或解释这些东西。PS 我探索了很多网站,包括 https://guides.codepath.com/android/ActiveAndroid-Guidehttps://github.com/pardom/ActiveAndroid/wiki/Getting-started不要在那里推荐我,这个问题没有解释。

另外,我可以为我的模型字段设置哪些其他属性,例如 onDelete?

最佳答案

这些不是 Activity android 的属性,而是 SQL。我猜 active android 使用了 Android 中的 SQLite 数据库。如果是这样,它们的含义如下:

NO ACTION:配置“NO ACTION”意味着:当父键被修改或从数据库中删除时,不采取任何特殊操作。

RESTRICT:“RESTRICT”操作意味着当存在一个或多个子键时,禁止应用程序删除(对于 ON DELETE RESTRICT)或修改(对于 ON UPDATE RESTRICT)父键映射到它。 RESTRICT 操作和正常外键约束强制执行的效果之间的区别在于,RESTRICT 操作处理在字段更新后立即发生 - 而不是在当前语句的末尾,因为它会使用立即约束,或者在末尾当前事务的处理方式与延迟约束一样。即使它所附加的外键约束被推迟,如果删除或修改具有依赖子键的父键,配置 RESTRICT 操作也会导致 SQLite 立即返回错误。

SET NULL:如果配置的操作是“SET NULL”,那么当父键被删除(对于 ON DELETE SET NULL)或修改(对于 ON UPDATE SET NULL)时,子键映射到父键的子表中所有行的列都设置为包含 SQL NULL 值。

SET DEFAULT:“SET DEFAULT”操作类似于“SET NULL”,除了每​​个子键列都设置为包含列默认值而不是 NULL。有关如何将默认值分配给表列的详细信息,请参阅 CREATE TABLE 文档。

CASCADE:“CASCADE”操作将对父键的删除或更新操作传播到每个从属子键。对于“ON DELETE CASCADE”操作,这意味着子表中与已删除父行关联的每一行也将被删除。对于“ON UPDATE CASCADE”操作,这意味着存储在每个依赖子键中的值被修改以匹配新的父键值。

此外,here's a link我在哪里找到这些信息。您也可以查看一般 SQLite documentation .

关于android - 主动 Android onDelete 和 onDelete,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31324314/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com