Activiti出现Cannot delete or update a parent row: a foreign key constraint fails错误

Activiti相关数据库表定义了很多外键,在自定义驳回、收回操作时,很容易出现外键引起的操作失败:
[Err] 1451 -Cannot delete or update a parent row: a foreign key constraint fails (...)

有两种方法解决:

1、临时关闭外键约束

1.1 操作开始前执行SET FOREIGN_KEY_CHECKS=0;关闭外键约束
1.2 操作完成后执行SET FOREIGN_KEY_CHECKS=1;开启外键约束

2、删除Activiti相关表外键
ALTER TABLE ACT_GE_BYTEARRAY DROP FOREIGN KEY `ACT_FK_BYTEARR_DEPL`;
ALTER TABLE ACT_PROCDEF_INFO DROP FOREIGN KEY `ACT_FK_INFO_JSON_BA`;
ALTER TABLE ACT_PROCDEF_INFO DROP FOREIGN KEY `ACT_FK_INFO_PROCDEF`;
ALTER TABLE ACT_RE_MODEL DROP FOREIGN KEY `ACT_FK_MODEL_DEPLOYMENT`;
ALTER TABLE ACT_RE_MODEL DROP FOREIGN KEY `ACT_FK_MODEL_SOURCE`;
ALTER TABLE ACT_RE_MODEL DROP FOREIGN KEY `ACT_FK_MODEL_SOURCE_EXTRA`;
ALTER TABLE ACT_RU_DEADLETTER_JOB DROP FOREIGN KEY `ACT_FK_DEADLETTER_JOB_EXCEPTION`;
ALTER TABLE ACT_RU_DEADLETTER_JOB DROP FOREIGN KEY `ACT_FK_DEADLETTER_JOB_EXECUTION`;
ALTER TABLE ACT_RU_DEADLETTER_JOB DROP FOREIGN KEY `ACT_FK_DEADLETTER_JOB_PROCESS_INSTANCE`;
ALTER TABLE ACT_RU_DEADLETTER_JOB DROP FOREIGN KEY `ACT_FK_DEADLETTER_JOB_PROC_DEF`;
ALTER TABLE ACT_RU_EVENT_SUBSCR DROP FOREIGN KEY `ACT_FK_EVENT_EXEC`;
ALTER TABLE ACT_RU_EXECUTION DROP FOREIGN KEY `ACT_FK_EXE_PARENT`;
ALTER TABLE ACT_RU_EXECUTION DROP FOREIGN KEY `ACT_FK_EXE_PROCDEF`;
ALTER TABLE ACT_RU_EXECUTION DROP FOREIGN KEY `ACT_FK_EXE_PROCINST`;
ALTER TABLE ACT_RU_EXECUTION DROP FOREIGN KEY `ACT_FK_EXE_SUPER`;
ALTER TABLE ACT_RU_IDENTITYLINK DROP FOREIGN KEY `ACT_FK_ATHRZ_PROCEDEF`;
ALTER TABLE ACT_RU_IDENTITYLINK DROP FOREIGN KEY `ACT_FK_IDL_PROCINST`;
ALTER TABLE ACT_RU_IDENTITYLINK DROP FOREIGN KEY `ACT_FK_TSKASS_TASK`;
ALTER TABLE ACT_RU_JOB DROP FOREIGN KEY `ACT_FK_JOB_EXCEPTION`;
ALTER TABLE ACT_RU_JOB DROP FOREIGN KEY `ACT_FK_JOB_EXECUTION`;
ALTER TABLE ACT_RU_JOB DROP FOREIGN KEY `ACT_FK_JOB_PROCESS_INSTANCE`;
ALTER TABLE ACT_RU_JOB DROP FOREIGN KEY `ACT_FK_JOB_PROC_DEF`;
ALTER TABLE ACT_RU_SUSPENDED_JOB DROP FOREIGN KEY `ACT_FK_SUSPENDED_JOB_EXCEPTION`;
ALTER TABLE ACT_RU_SUSPENDED_JOB DROP FOREIGN KEY `ACT_FK_SUSPENDED_JOB_EXECUTION`;
ALTER TABLE ACT_RU_SUSPENDED_JOB DROP FOREIGN KEY `ACT_FK_SUSPENDED_JOB_PROCESS_INSTANCE`;
ALTER TABLE ACT_RU_SUSPENDED_JOB DROP FOREIGN KEY `ACT_FK_SUSPENDED_JOB_PROC_DEF`;
ALTER TABLE ACT_RU_TASK DROP FOREIGN KEY `ACT_FK_TASK_EXE`;
ALTER TABLE ACT_RU_TASK DROP FOREIGN KEY `ACT_FK_TASK_PROCDEF`;
ALTER TABLE ACT_RU_TASK DROP FOREIGN KEY `ACT_FK_TASK_PROCINST`;
ALTER TABLE ACT_RU_TIMER_JOB DROP FOREIGN KEY `ACT_FK_TIMER_JOB_EXCEPTION`;
ALTER TABLE ACT_RU_TIMER_JOB DROP FOREIGN KEY `ACT_FK_TIMER_JOB_EXECUTION`;
ALTER TABLE ACT_RU_TIMER_JOB DROP FOREIGN KEY `ACT_FK_TIMER_JOB_PROCESS_INSTANCE`;
ALTER TABLE ACT_RU_TIMER_JOB DROP FOREIGN KEY `ACT_FK_TIMER_JOB_PROC_DEF`;
ALTER TABLE ACT_RU_VARIABLE DROP FOREIGN KEY `ACT_FK_VAR_BYTEARRAY`;
ALTER TABLE ACT_RU_VARIABLE DROP FOREIGN KEY `ACT_FK_VAR_EXE`;
ALTER TABLE ACT_RU_VARIABLE DROP FOREIGN KEY `ACT_FK_VAR_PROCINST`;
posted @ 2024-07-24 21:43  vickcan  阅读(437)  评论(0)    收藏  举报