MySQL创建的触发器未触发,请求协助排查原因
MySQL触发器未触发排查步骤
针对你创建的tgv_customer_insert和tgv_customer_update触发器未触发的问题,可按以下步骤排查:
检查权限配置
确保当前用户拥有触发器操作权限及目标表插入权限,执行以下命令验证:SHOW GRANTS FOR CURRENT_USER;需确认包含
TRIGGER权限,以及对salesforce_event_history表的INSERT权限。验证目标表插入可行性
手动执行触发器内的插入语句,测试是否能正常写入salesforce_event_history:-- 替换{valid_id}为tgv_customer表中存在的id_customer值 INSERT INTO salesforce_event_history(flow_name,fk_oid,last_mod_time) VALUES ('CustomerOrProspect1', {valid_id}, SYSDATE());如果插入失败,说明目标表存在字段约束(如非空限制、类型不匹配、外键关联错误等),导致触发器执行时静默失败。
确认事务提交状态
若操作tgv_customer时使用了事务且未提交,触发器的插入操作会随事务回滚。执行以下命令查看自动提交配置:SELECT @@autocommit;若返回
0,需确认操作后是否执行了COMMIT;提交事务。核对触发器定义细节
重新检查触发器的表名、字段名拼写:- 确认
tgv_customer和salesforce_event_history表名无拼写错误 - 确认
salesforce_event_history的flow_name、fk_oid、last_mod_time字段存在,且NEW.id_customer的类型与fk_oid字段类型匹配(如INT与VARCHAR不匹配会导致插入失败)
- 确认
查看MySQL错误日志
检查MySQL错误日志文件,查找触发器执行相关的报错信息,日志路径可通过以下命令获取:SHOW VARIABLES LIKE 'log_error';
内容的提问来源于stack exchange,提问作者Mark
相关产品推荐
相关产品推荐

