mysql 存储过程 is_Mysql存储过程语法问题...

小弟对Mysql存储过程语法不太熟悉,以下存储过程在调整过后执行仍不成功,求各位大侠指点指点。。

create procedure prc_AddChannel

(

id int,

iname varchar(50),

isdisplay int,

descriptions varchar(100),

demo varchar(100)

)

begin

declare myRight int;

declare pro int;

SELECT Right_Value into myRight FROM CHANNEL WHERE CHANNEL_ID=id;

SELECT count(*) into pro FROM CHANNEL WHERE PARENT_ID=id;

UPdate CHANNEL SET HAS_CHILD = 1 WHERE CHANNEL_ID=id;

UPdate CHANNEL SET RIGHT_VALUE = RIGHT_VALUE+2 WHERE RIGHT_VALUE>=myRight;

UPdate CHANNEL SET LEFT_VALUE = LEFT_VALUE+2 WHERE LEFT_VALUE>myRight;

INSERT INTO CHANNEL(PARENT_ID,TITLE,CREATE_TIME,Left_Value,Right_Value,HAS_CHILD,PRORITY,Is_Display,Description,Demo) VALUES (id,iname,now(),myRight,myRight + 1,0,pro+1,isdisplay,descriptions,demo);

end;

create procedure prc_DelChannel(id int)

begin

declare myRight int ;

declare myLeft int ;

declare myWidth int ;

SELECT Right_Value into myRight FROM CHANNEL WHERE CHANNEL_ID = id;

SELECT LEFT_VALUE into myLeft FROM CHANNEL WHERE CHANNEL_ID = id;

SELECT Right_Value - LEFT_VALUE + 1 into myWidth FROM CHANNEL WHERE CHANNEL_ID = id;

DELETE FROM CHANNEL WHERE LEFT_VALUE BETWEEN myLeft AND myRight;

UPdate CHANNEL SET Right_Value = Right_Value - myWidth WHERE Right_Value > myRight;

UPdate CHANNEL SET LEFT_VALUE = LEFT_VALUE - myWidth WHERE LEFT_VALUE > myRight;

end;

作者: hp_1015

发布时间: 2010-09-02

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值