触发器中使用函数报错

CREATE

TRIGGER `sys_dept_insert` AFTER INSERT ON `sys_organization` 
FOR EACH ROW BEGIN
INSERT INTO
  `rqjcpt_qianmo_sys_db`.`sys_dept`
VALUES
  (new.id

, ‘000000’
, new.PARENT
, new.code
, getParentDetpPids(new.id)
, 1
, new.NAME
, ‘’
, new.SORT_NUM
, new.DESCRIPTION
, new.DEL_FLAG
, 0
, new.ID);
end;

该语句在MySQL可以执行成功,在ob库执行报错;报错如下:
1442 - Can’t update table ‘sys_organization’ in stored function/trigger because it is already used by statement which invoked this stored function/trigger.

求大神答疑解惑

1 个赞

稍等一下~

1 个赞

OceanBase在trigger中不能访问trigger的基表,这点暂时没有和MySQL完全兼容,后续版本会逐步兼容。看下trigger中的insert语句是否会级联触发访问sys_organization表,如果有这种情况的话,目前是不允许的。

1 个赞