You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

删除r_report8记录时如何同步将rjob_header的report_item7置0或空?

实现删除r_report8记录时同步更新rjob_header的report_item7字段

要解决这个问题,你需要在r_report8表上创建一个AFTER DELETE触发器,当该表的记录被删除时,自动将rjob_header中对应关联记录的report_item7字段更新为0或NULL。

具体实现步骤

  1. 确认两张表的关联字段:比如假设r_report8和rjob_header通过job_id字段关联(请替换成你实际的关联字段,如订单ID、任务ID等)。
  2. 根据数据库类型创建对应的触发器,以下是主流数据库的示例代码:

MySQL 示例

DELIMITER //
CREATE TRIGGER trg_rreport8_delete_sync_rjobheader
AFTER DELETE ON r_report8
FOR EACH ROW
BEGIN
    -- 将对应记录的report_item7设为0,如需设为NULL则替换为NULL
    UPDATE rjob_header
    SET report_item7 = 0
    WHERE rjob_header.job_id = OLD.job_id; -- 替换为实际关联字段
END //
DELIMITER ;

PostgreSQL 示例

-- 先创建触发函数
CREATE OR REPLACE FUNCTION sync_rjobheader_after_delete()
RETURNS TRIGGER AS $$
BEGIN
    UPDATE rjob_header
    SET report_item7 = 0 -- 如需设为NULL则替换为NULL
    WHERE rjob_header.job_id = OLD.job_id; -- 替换为实际关联字段
    RETURN NULL;
END;
$$ LANGUAGE plpgsql;

-- 创建触发器
CREATE TRIGGER trg_rreport8_delete_sync_rjobheader
AFTER DELETE ON r_report8
FOR EACH ROW
EXECUTE FUNCTION sync_rjobheader_after_delete();

关键注意事项

  • 必须替换代码中的job_id为两张表实际的关联字段,否则无法匹配到目标记录。
  • 若需要将report_item7设为NULL,直接把SET report_item7 = 0修改为SET report_item7 = NULL即可。
  • 确保创建触发器的用户拥有rjob_header表的UPDATE权限,以及r_report8表的触发器创建权限。

内容的提问来源于stack exchange,提问作者Ray

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 01:19:53