读书人

mysql 存储过程跟触发器 都报错了

发布时间: 2012-11-06 14:07:00 作者: rapoo

mysql 存储过程和触发器 都报错了
#
#添加触发器(当删除留言时,删除留言的回复)
#
create tigger tri_Tb_Message_delete
after delete
on tb_message
FOR Each row
BEGIN
delete from Tb_Reply where Message_Id in (select Message_Id from deleted);
End;

#
#--添加存储过程(表名:Tb_Reply)
#insert
#
#
CREATE PROCEDURE pro_Tb_Reply_insert(
Message_Id int , --留言编号
Reply_Contents text, --回复内容
Reply_Time datetime='' --回复时间
)
BEGIN
Insert into Tb_Reply values(Message_Id,Reply_Contents,case is null (Reply_Time,'') when '' then getDate() when Reply_Time then Reply_Time end);
END;


给我帮我看看,貌似语法没有错,
[align=center][/align][align=left][/align]

[解决办法]
DELIMITER $$
CREATE PROCEDURE pro_Tb_Reply_insert(
Message_Id int , --留言编号
Reply_Contents text, --回复内容
Reply_Time datetime='' --回复时间
)
BEGIN
Insert into Tb_Reply values(Message_Id,Reply_Contents,case is null (Reply_Time,'') when '' then getDate() when Reply_Time then Reply_Time end);
END$$
DELIMITER ;
[解决办法]
当存储过程中有多个语句时,使用 delimiter // 来修改提交符。

delimiter //
create tigger tri_Tb_Message_delete
after delete
on tb_message
FOR Each row
BEGIN
delete from Tb_Reply where Message_Id in (select Message_Id from deleted);
End;
//
[解决办法]
delimiter$$
create tigger tri_Tb_Message_delete
after delete
on tb_message
FOR Each row
BEGIN
delete from Tb_Reply where Message_Id in (select Message_Id from deleted);
End$$
delimiter;

读书人网 >Mysql

热点推荐