Mysql #1442-Can';t更新存储函数/触发器中的表,因为它已被使用

Mysql #1442-Can';t更新存储函数/触发器中的表,因为它已被使用,mysql,Mysql,我有一张叫permitissued的桌子。当我执行insert时,我希望调用触发器并更新BRIMSCode列。运行时出现错误#1442-无法更新存储函数/触发器中的表'permitissued',因为调用此存储函数/触发器的语句已经在使用它 DROP TRIGGER IF EXISTS `updatePermitissuedBRIMSCode`;CREATE DEFINER=`root`@`localhost` TRIGGER `updatePermitissuedBRIMSCode` AFTE

我有一张叫permitissued的桌子。当我执行insert时,我希望调用触发器并更新BRIMSCode列。运行时出现错误#1442-无法更新存储函数/触发器中的表'permitissued',因为调用此存储函数/触发器的语句已经在使用它

DROP TRIGGER IF EXISTS `updatePermitissuedBRIMSCode`;CREATE DEFINER=`root`@`localhost` TRIGGER `updatePermitissuedBRIMSCode` AFTER INSERT ON `permitissued` FOR EACH ROW UPDATE permitissued SET permitissued.BRIMSCode=(SELECT ParentBRIMSCode FROM subcategorycharges WHERE permitissued.ActivityCode = subcategorycharges.BRIMSCode)
这是我的sql插入

INSERT INTO `businesses`.`permitissued` (`id`, `BusinessID`, `BillNo`, `ReceiptNo`, `CalenderYear`, `ActivityCode`, `SBPFee`, `RegistrationFee`, `DateIssued`, `AmountBilled`, `AmountPaid`, `Period`, `StartDate`, `EndDate`, `DateModified`, `printable`, `businessStatus`, `Status`, `BRIMSCode`) VALUES (NULL, '55555', '55555', '55555', '2020', '5', '5', '4', '4', '4', '4', '1', '4', '4', '4', '4', '1', '1', '0')

您可以在INSERT触发器之前使用
,并覆盖
BRISCODE
值:

DROP TRIGGER IF EXISTS `updatePermitissuedBRIMSCode`;
CREATE DEFINER=`root`@`localhost` TRIGGER `updatePermitissuedBRIMSCode` 
BEFORE INSERT ON `permitissued` 
FOR EACH ROW 
SET NEW.BRIMSCode = (SELECT ParentBRIMSCode
                     FROM subcategorycharges
                     WHERE NEW.ActivityCode = subcategorycharges.BRIMSCode)

您可以在插入触发器之前使用
,并覆盖
BRIMSCode
值:

DROP TRIGGER IF EXISTS `updatePermitissuedBRIMSCode`;
CREATE DEFINER=`root`@`localhost` TRIGGER `updatePermitissuedBRIMSCode` 
BEFORE INSERT ON `permitissued` 
FOR EACH ROW 
SET NEW.BRIMSCode = (SELECT ParentBRIMSCode
                     FROM subcategorycharges
                     WHERE NEW.ActivityCode = subcategorycharges.BRIMSCode)

看到这个了吗