MySQL 错误:无法更新存储函数/触发器中的表
问题:
尝试使用触发器向MySQL表中插入新行时,出现以下错误发生:
Can't update table 'brandnames' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
答案:
当 INSERT 触发器尝试修改调用它的表时,会遇到此错误。 MySQL 禁止这种行为有两个主要原因:
要解决此错误,请考虑使用以下方法:
例如,要从全名的前两个字符创建短名称字段,可以使用以下 BEFORE INSERT 触发器:
CREATE TRIGGER `capital` BEFORE INSERT ON `brandnames` FOR EACH ROW BEGIN SET NEW.short_name = CONCAT(UCASE(LEFT(NEW.full_name,1)) , LCASE(SUBSTRING(NEW.full_name,2))) END
以上是为什么我无法更新 MySQL 存储函数或触发器中的表?的详细内容。更多信息请关注PHP中文网其他相关文章!