三十六、存储过程小练

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

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

一、创建表

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

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');
目录
相关文章
|
6月前
|
存储 关系型数据库 MySQL
Mysql基础第二十六天,使用存储过程
Mysql基础第二十六天,使用存储过程
48 0
Mysql基础第二十六天,使用存储过程
|
存储 SQL 定位技术
【机房重构】—存储过程当媒人
那是一个风和日丽的白天,重构帅小伙独自一人走在处处飘香的初夏的校园中,他一直在思考,如何与库美女更容易的交往呢?
|
存储 SQL 数据库
第一次机房收费系统——存储过程的应用
存储过程只需要在创建时进行编译,以后每次调用此存储过程都不需要在进行编译,而一般的SQL语句每执行一次就编译一次,所以使用存储过程可以提高数据库执行速度
|
存储 SQL 数据库
【机房重构】组合查询—存储过程
【机房重构】组合查询—存储过程
46 0
|
存储 SQL 数据库
【机房重构】——存储过程和触发器
【机房重构】——存储过程和触发器
159 0
【机房重构】——存储过程和触发器
|
存储 SQL 关系型数据库
三十五、存储过程的基本使用
三十五、存储过程的基本使用
136 0
|
JavaScript Android开发
第二十三章:触发器和行为(七)
行为 触发器和行为通常是串联讨论的,因为它们具有一些应用重叠。 有时候你会感到困惑是否使用触发器或行为,因为似乎要么这样做工作。你可以用触发器做任何事情,你也可以做一个行为。 但是,行为总是涉及一些代码,这是一个派生自Behavior 的类。
948 0
|
JavaScript Android开发
第二十三章:触发器和行为(十)
响应水龙头切换视图的各种表现形式演示了一种响应XAML文件中的点击的方法。 如果将tap事件集成到VisualElement类中,您可以使用EventTrigger更直接且更轻松地获取它们。 但是您无法将EventTrigger附加到TapGestureRecognizer。
544 0
|
JavaScript Android开发 Windows
第二十三章:触发器和行为(九)
切换和复选框在第15章“交互式界面”和第16章“数据绑定”中,您了解了如何构造传统的CheckBox视图。 但是,自定义视图的另一种方法是将视图的交互逻辑合并到行为中,然后完全在XAML中实现视觉效果。
728 0
|
Android开发
第二十三章:触发器和行为(八)
具有属性的行为Behavior 类派生自Behavior类,该类派生自BindableObject。这表明您的Behavior 派生可以定义自己的可绑定属性。之前你看过一些Action 衍生产品,比如ScaleAction和ShiverAction,它们定义了一些属性以赋予它们更大的灵活性。
649 0