跳到主要内容

OnDeleteAction

Defined in: packages/rxdb/src/entity/relation-types.interface.ts:70

外键约束操作枚举 定义 SQLite 外键约束的级联行为

SQLite 支持在外键定义时指定 ON DELETE 和 ON UPDATE 的行为 这些约束在数据库层面自动执行,无需应用层干预

See​

https://www.sqlite.org/foreignkeys.html

Enumeration Members​

CASCADE​

CASCADE: "CASCADE";

Defined in: packages/rxdb/src/entity/relation-types.interface.ts:92

级联删除 删除父表记录时,自动删除所有引用该记录的子表记录

Example​

删除用户时自动删除其所有订单
**警告:** 谨慎使用,可能导致大量数据被删除

NO_ACTION​

NO_ACTION: "NO ACTION";

Defined in: packages/rxdb/src/entity/relation-types.interface.ts:77

不执行任何操作(默认) 当父表记录被删除时,不对子表记录做任何处理 如果存在引用,删除操作会失败(违反外键约束)

Default​


RESTRICT​

RESTRICT: "RESTRICT";

Defined in: packages/rxdb/src/entity/relation-types.interface.ts:84

限制删除 如果存在子表引用,则阻止删除父表记录 行为与 NO_ACTION 类似,但检查时机更早


SET_DEFAULT​

SET_DEFAULT: "SET DEFAULT";

Defined in: packages/rxdb/src/entity/relation-types.interface.ts:108

设置为默认值 删除父表记录时,将子表中的外键字段设置为其默认值

Example​

删除部门时,将员工的 department_id 设为默认部门
**Requires:** 外键字段必须定义 DEFAULT 值

SET_NULL​

SET_NULL: "SET NULL";

Defined in: packages/rxdb/src/entity/relation-types.interface.ts:100

设置为 NULL 删除父表记录时,将子表中的外键字段设置为 NULL

Example​

删除分类时,将产品的 category_id 设为 NULL
**Requires:** 外键字段必须允许 NULL 值