日期:2014-05-17  浏览次数:20890 次

紧急求救:触发器编写过程出现错,解决立马结帖!!!
是这样的触发器:我的触发器实现在删除回帖表中的回帖时,将该回帖对应的主题帖的最新回复时间修改为该主题帖在回帖表中剩余回帖的最晚时间。

回帖表(reply)
名称 类型 含义 说明
REPLYID NUMBER 回帖ID 主键
CONTENT NVARCHAR2(1000) 回帖内容 非空
PUBDATE DATE 回帖时间
USERID NUMBER 用户ID prouser表的外键
PARENTID NUMBER 父帖子的ID article表的外键

主题帖表(article)
名称 类型 含义 说明
ARTICLEID NUMBER 文章ID 主键
TITLE NVARCHAR2(64) 发帖标题  
CONTENT NVARCHAR2(1000) 发帖内容 非空
USERID NUMBER 用户ID prouser表的外键
PUBDATE DATE 发帖时间
REPLYDATE DATE 最新回复时间
MODULEID NUMBER 版块ID module表的外键 

我的触发器代码如下:
create or replace trigger deleteReply
after delete on reply for each row
begin
 update article
 set replydate=
(select max(pubdate)
 from reply
 where reply.parentid=:old.parentid)
where articleid=:old.parentid;
看了半天看出是哪里问题了。是我的max和for each row相矛盾了,可是我不知道如何改,不知在for each row 情况下如何求出
主题帖对应reply表在回帖删除后所有回帖的最晚时间??求大家帮帮我啊!!

------解决方案--------------------
update article 
set replydate= 
(select max(pubdate) 
from reply 
where reply.parentid=:old.parentid) 
where articleid=:old.parentid; 

一句语句里出现两个WHERE?
是贴错了?还是原始就写错了
------解决方案--------------------
max和for each row应该没什么关系吧!!
for each row表示创建是的行级触发器,max是一个函数!
楼上的语句好像看不出有什么错误?不知道执行时提示什么错误?