一个关于触发器性能的疑问
俺有3个表,a(相册表),b(图片表),c(评论表)
当在程序里删除多张b表的图片时,执行b上的触发器
select @aid = aid from deleted --相册id
select @pid = pid from deleted --图片id
update a set anum=anum - 1 where aid=@aid
delete from c where pid = @pid --删除c(评论表)表中此图片的评论
c(评论表)上有触发器
update b set premark = premark - 1 from b join deleted d on hl_ualbumpic.pid = d.pid
--有可能的删除方式 如delete from tab where id in(...)
-----------
这样当删除b的图片时c上触发器又回来给b表相应的图片减少一个评论数,而此时b表该图片pid可能已经不存在了
如此循环会不会对性能有很大的损失
刚弄触发器不久,写了很多,现在回头发现很多类似的这种有点矛盾的地方
------解决方案--------------------图片都被删除了,你还更新图片拥有的评论数量???
我想你的意思是更新图片所在相册的评论数量吧?