我已经阅读了这个论坛注册中的 4 个案例。
错误代码:1442。无法更新存储函数/触发器中的表“表名”,因为它已被语句使用
这些情况比我的情况要复杂得多。我创建了一个ArgentineWines
包含 5 列的表,加载了 10 行,并创建了一个触发器:
CREATE TRIGGER Trigger_Before_An_ArgentineWines_update
AFTER UPDATE ON ArgentineWines
FOR EACH ROW
INSERT INTO ArgentineWines
SET action = 'update',
RankingId = OLD.RankingId,
WineName = OLD.WineName,
Description = OLD.Description,
RecordDate = NOW();
当我尝试通过更改表来测试触发器时,就会出现问题。我试图以两种不同的方式更新表格
第一次尝试:
USE Sakila;
UPDATE ArgentineWines
SET WineName = REPLACE(WineName,'GRAFFIGNA RESERVE','GRAFFIGNA RESERVE Grandiose')
WHERE RankingId = 6;
第二次尝试:
USE Sakila;
UPDATE ArgentineWines
SET WineName = 'GRAFFIGNA RESERVE Grandiose'
WHERE RankingId = 6;
无论我尝试什么,我都会收到此错误:
错误代码:1442。无法更新存储函数/触发器中的表“ argentinewines ”,因为它已被调用此存储函数/触发器的语句使用
无论错误不断弹出,我都使用过之前使用过之后。
问题:还有哪个语句在调用我的存储过程?什么已经在使用什么?错误描述不是很清楚。
拜托,这个谜团的任何想法或解决方案都会很棒。DH