我有一个带有表 A 的 Firebird 数据库,包括 ID 主键。
以及其他几个表,如:表 B,包括 A_ID 到 A.ID 的外键(在删除 NO ACTION 时)。
现在我想检查一个存储过程是否可以删除 A 中的一行。
仅在可能没有错误的情况下才实际删除它。
但我不想检查所有其他具有 A 外键的表。
我需要的是这样的:
safepoint X; delete from A where ID = 1; when any do begin return = 'false'; end rollback to X;
但是存储过程中不允许保存点。
或者
- 一种检查 A.ID 的方法,如果其他表中有行引用它。
无需手动选择所有其他表。
有没有办法做到这一点?