delimiter //
create procedure fix_position()
begin
declare t mediumint(8);
declare b mediumint(8);
declare c mediumint(8);
DECLARE thread_id CURSOR FOR select tid from pre_forum_thread;
open threadid;
myloop: LOOP
fetch thread_id into t;
SELECT count(*) into b FROM pre_forum_post WHERE tid=t;
set c= b - 1;
UPDATE pre_forum_thread SET replies= c WHERE tid=t;
UPDATE pre_forum_thread SET maxposition=b WHERE tid=t;
END LOOP;
CLOSE thread_id;
end;//
DELIMITER ;
discuz 的数据库,重新计算回复的次数然后更新到 pre_forum_thread 表, 只要执行就会报 Out of range value for column 'replies' at row 1 对 mysql 没啥研究,这还是根据网上资料现学的。。请问应该怎么修改? 感谢