#1442-无法更新存储的函数/触发器中的表,因为它已被使用

Alex Wanjala:

我有一张叫被许可的桌子。进行插入操作时,我希望调用触发器并更新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')
尼克:

您可以改用BEFORE INSERT触发器并覆盖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)

dbfiddle上的演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

#1442-无法更新存储函数/触发器中的表“ INSURANCE”,因为调用该存储函数/触发器的语句已使用该表

如何解决错误:错误1442(HY000)无法更新存储的函数/触发器中的表“表名”?

MYSQL 更新触发器 - 无法更新存储函数/触发器中的表,因为它已被语句使用

错误 1442:phpMyAdmin 中与触发器相关的 MySQL 错误

(MySQL) 无法更新存储函数/触发器中的表“PARTS”,因为它已被调用此存储函数/触发器的语句使用

在更新导致错误#1442之前触发

MySQL触发器问题。如何修复?错误 1442

MySQL错误1442:无法更新表,但未引用表?

MySQL 错误 1442 使用 2 个触发器更新 2 个不同数据库上的 2 个表的字段

无法更新存储函数/触发器中的表“ blad”,因为调用该存储函数/触发器的语句已使用该表

MySQL错误:无法更新存储函数/触发器中的表'tbl',因为调用该存储函数/触发器的语句已使用该表

无法更新存储触发器中的表,因为调用该存储触发器的语句已使用该表

MYSQL:无法更新存储函数/触发器中的表

MySQL错误-无法更新存储的函数/触发器中的表'library_audit2',因为该语句已使用该表

我在 MySQL 中创建 TRIGGER 时出现错误代码 1442,而我的另一个触发器出现另一个语法错误?我该如何解决?

无法更新存储的函数/触发器错误中的表“ attendance_tbl”以删除触发器

使用内部联接进行删除并触发引发错误:无法更新存储函数/触发器中的表“ table_b”

使用存储过程中的值更新触发器中的表

使用触发器收集表中的更新值

PostgreSQL的相同触发器函数可以在INSERT上更新到不同的表中(使用相同的模式)

无法更改表上的触发器名称,因为此触发器不属于该对象

删除和更新后使用触发器更新表

使用触发器和存储过程中的值将值插入表中

使用 mariabackup 备份触发器、函数和存储过程

使用 PostgreSQL 上的触发器和函数使用另一个表中的信息更新表上的指定行

更新后如何使用触发器将参数中的数据插入表中

继承表中的Postgresql更新时间戳触发器

使用触发器更新表的特定行

PostgreSQL使用触发器来更新表