三十六、存储过程小练

简介: 三十六、存储过程小练

上一篇文章讲解了存储过程的语法,那么这篇文章我们就利用存储过程来实现一个功能:给用户发邮件。

一、创建表

首先我们需要创建一个用户表和邮件表

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
);

二、逻辑分析

1. 获取指定用户的 email;

select email from userinfo where id=用户id

2. 向 email 表插入数据

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');
目录
相关文章
|
8月前
|
存储 关系型数据库 MySQL
Mysql基础第二十六天,使用存储过程
Mysql基础第二十六天,使用存储过程
55 0
Mysql基础第二十六天,使用存储过程
|
5月前
|
存储 SQL 数据库
|
8月前
|
SQL 缓存 数据库
DML的原理:一篇文章让你豁然开朗
DML的原理:一篇文章让你豁然开朗
93 1
|
存储 SQL 关系型数据库
MySQL基础-存储过程与函数
MySQL基础-存储过程与函数
|
8月前
|
存储 SQL 安全
探秘MSSQL存储过程:存储过程的高级特性和实战技巧
探秘MSSQL存储过程:存储过程的高级特性和实战技巧
|
存储 SQL 数据库
第一次机房收费系统——存储过程的应用
存储过程只需要在创建时进行编译,以后每次调用此存储过程都不需要在进行编译,而一般的SQL语句每执行一次就编译一次,所以使用存储过程可以提高数据库执行速度
|
存储 SQL 关系型数据库
MySQL基础篇——存储过程和函数
MySQL基础篇——存储过程和函数
127 0
|
存储 SQL 关系型数据库
三十五、存储过程的基本使用
三十五、存储过程的基本使用
144 0