Swift - 在SharkORM中删除Cascade

时间:2017-03-30 13:40:37

标签: ios swift sqlite dbaccess

我在Swift中使用SharkORM来创建一个SQLite数据库,问题是我有两个使用外键的一对多关系表,我需要知道是否有一种方法可以在删除时实现级联这两个表,

当我从主表中删除记录时,应该自动删除详细信息表中带有外键的所有记录,我不想手动实现。

那么有没有办法在使用SharkORM实现删除级联?我已经通过了文件,找不到任何东西,

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

因此,如果您以with open("Output.txt", "bw") as text_file: 为例,其中person包含Person -> Department属性。然后,您通过.department方法级联这些删除。

一个例子就是这样的'某事'。

entityWillDelete

对于关系,请始终注意反向。

class Department: SRKObject { ... override func entityWillDelete() -> BOOL { Person.query() .whereWithFormat("department = %@", parameters:[self]) .fetch() .removeAll() return true } } 的文档在此提及。

entityWillDelete

这一切都在一个事务中完成,包括所有级联和事件触发器更改。然后,在出现故障/错误/中止的情况下,可以将其全部回滚。