上一篇文章讲解了存储过程的语法,那么这篇文章我们就利用存储过程来实现一个功能:给用户发邮件。
首先我们需要创建一个用户表和邮件表
create table userinfo(
id int not null auto_increment primary key,
name varchar(30),
email varchar(30)
);
create table email(
id int not null auto_increment primary key,
email varchar(30),
content text,
send_datetime datetime
);
select email from userinfo where id=用户id
insert into email(email,content,send_datetime) values (邮箱,发送内容,now())
根据上面分析的逻辑和存储过程的语法,实现如下:
delimiter //
create procedure send_email(in userid int,in content text)
begin
/*根据用户id获取邮箱*/
set @user_email=(select email from userinfo where id=userId);
/*邮件内容写入email表*/
insert into email(email,content,send_datetime) values(@user_email,content,now());
end;
//
delimiter ;
调用:
call send_email(1,'hello mysql');