当表发生变化时,触发器或函数可能无法看到最新的表状态。这可能是因为它们在执行之前被缓存了。
以下是一些解决方法:
-- 刷新缓存
FLUSH TABLES;
-- 提交事务
COMMIT;
-- 创建AFTER触发器
CREATE TRIGGER trigger_name AFTER INSERT ON table_name FOR EACH ROW
BEGIN
-- 触发器逻辑
END;
-- 使用动态SQL
SET @sql = CONCAT('SELECT * FROM ', table_name);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
通过使用上述解决方法之一,可以确保触发器或函数能够看到表的最新状态,并正确执行其逻辑。
上一篇:表征学习深度学习