在上一节的代码的基础上对代码进行复制和修改main过程,另存为main2过程,在main2存储过程中需要增加这些内容
1、声明异常
2、用创建xs1表同样的方式创建表xs2
3、给xs2表的姓名列添加唯一索引
4、调用get_name过程得到随机生成的姓名和性别
5、通过循环语句将1000个学生的学号、姓名、性别插入到xs2表中(由于姓名列增加了唯一索引,当插入的姓名与已有的姓名重复时会出现异常)
6、当出现异常时,显示xh、xm和出错信息(出错信息为‘重名了’)
Xh xm 出错信息
876 张三 重名了
Select * from xs2;
7、循环结束后查看xs2表的记录

对以上的流程进行参照。

delimiter $$
drop procedure if exists get_a_character;
create procedure get_a_character(in s char(100),out w char(1))
begin
set @len1=char_length(s);
set @a=floor(rand()*@len1+1);
set @xing=substring(s,@a,1);
set w=@xing;
end $$
delimiter ;
call get_a_character('刘王张赵李钱朱何孙曾陈吴黄郑邓周毛江胡',@k);
select @k;
delimiter $$
drop procedure if exists get_name;
create procedure  get_name(out m varchar(2),out xb varchar(45))
begin
declare cd int;
declare ms1,ms2 varchar(50);
declare m1,m2,m3 varchar(2);
set ms1='依秋香巧紫萱莉玉碧丽念雅红燕艳莲荷蕾紫莹颖琪';
set ms2='澄德海超阳昌瀚亮锋涵煦杰俊诚毅峰衍浩广邈言博畅';
set cd=floor(rand()*2+1);
set xb=floor(rand()*2);
if xb=1 then
call get_a_character(ms1,m1);
call get_a_character(ms1,m2);
set m3=concat((select m1),(select m2));
elseif xb=0 then
call get_a_character(ms2,m1);
call get_a_character(ms2,m2);
set m3=concat((select m1),(select m2));
end if;
if cd=1 then
set m=m1;
elseif cd=2 then
set m=m3;
end if;
end $$
delimiter ;
call get_name(@name,@xb);
select @name,@xb;
delimiter $$
drop procedure if exists main2;
create procedure  main2()
begin
declare x varchar(100);
declare xing,ming,xm varchar(3);
declare sex,f int;
declare xh varchar(8);
declare continue handler for sqlexception set f=2;
drop table if exists xs2;
create table xs2 as select 学号,姓名,性别 from xs limit 0;
create unique index index_name on xs2(姓名);
set xh='19000';
set x='刘王张赵李钱朱何孙曾陈吴黄郑邓周毛江胡';
while xh<'20000' do
call get_a_character(x,xing);
call get_name(ming,sex);
set xm=concat(xing,ming);
insert into xs2 values (xh,xm,sex);
if f=2 then
select xh,xm,'重名了';
set f=1;
else
set xh=xh+1;
end if;
end while;
end $$
delimiter ;
call main2();
select * from xs2;


得到的表中没有重复的名字。

实验18 存储过程异常处理相关推荐

  1. Oracle 存储过程异常处理

    Oracle 存储过程异常处理 参考文章: (1)Oracle 存储过程异常处理 (2)https://www.cnblogs.com/colder/p/5737107.html (3)https:/ ...

  2. NA-NP-IE系列实验18:ip default-network

    实验18:ip default-network 1.实验目的 通过本实验可以掌握如何通过ip default-network 向网络中注入一条默认路由.   2.拓扑结构 实验拓扑如图所示. 3.实验 ...

  3. 关于MySQL存储过程异常处理的一点心得

    关于MySQL存储过程异常处理的一点心得 参考文章: (1)关于MySQL存储过程异常处理的一点心得 (2)https://www.cnblogs.com/lrl45/p/6037513.html ( ...

  4. MySql存储过程异常处理示例

    MySql存储过程异常处理示例 参考文章: (1)MySql存储过程异常处理示例 (2)https://www.cnblogs.com/lucienbao/archive/2012/06/07/mys ...

  5. 实验六——存储过程实验

    实验六--存储过程实验 一.实验题目 二.实验目的 三.实验过程 (一)准备数据表 (二)存储过程实验 [存储过程简介] [存储过程优点] 1.创建存储过程 2.查看存储过程 3.修改存储过程 4.删 ...

  6. 数据库实验系列之3存储过程和触发器实验(存储过程和触发器)

    存储过程和触发器实验(存储过程和触发器) 实验9:存储过程实验 实验10:触发器实验 本文最初由security9968发布于security9968的csdn博客,禁止任何形式的剽窃行为 转载原创文 ...

  7. 数据库实验 实验七 存储过程与触发器

    注:此内容仅仅只是记录成长与分享学习,不能保证绝对正确 实验七 存储过程与触发器 实验日期: 2022 年 5 月 20 日  星期 五  实验地点: 宿舍 一 实验目的 1. 掌握SQL Serve ...

  8. matlab1-8章课后答案,matlab实验1-8带答案,.doc_十八文库18wk.cn

    matlab实验1-8带答案,,.doc 实 验 一 Matlb基 本 操 作一 . 实 验 目 的 :1. 掌 握 矩 阵 和 多 项 式 构 造 和 运 算 方 法 .2. 能 够 用 常 用 函 ...

  9. mysql过程异常处理_mysql数据库存储过程异常处理

    14.1.4  定义条件和处理程序 定义条件和处理程序是事先定义程序执行过程中可能遇到的问题.并且可以在处理程序中定义解决这些问题的办法.这种方式可以提前预测可能出现的问题, 并提出解决办法.这样可以 ...

最新文章

  1. c语言关于office运行库,VC++运行库32/64位合集下载|微软常用运行库合集(2015- 2021版)...
  2. 将Hexo同时部署在github和腾讯云开发者平台或Coding初级实践教程
  3. k8s pod健康检查(存活、就绪检查):livenessProbe策略配置示例
  4. 小学计算机应用到英语课教案,信息技术与PEP小学英语三年级学科整合交流课例...
  5. boost::mp11::mp_find相关用法的测试程序
  6. View和ViewGroup的层次关系
  7. 【dfs】I Like Matrix!
  8. Javascript 基础笔记
  9. 天池 在线编程 最频繁出现的子串(字符串哈希)
  10. 惠普服务器u盘系统安装win7系统教程,惠普星14笔记本U盘安装win7系统的操作教程...
  11. XSS绕过与防御总结
  12. java api cdm文档下载_Java-ORM数据库框架CDM介绍
  13. 修改Android模拟器存储位置,更改AndroidAVD模拟器创建路径位置的方法
  14. 到底如何理解文本?一文读懂命名实体识别(实体消歧和实体统一)
  15. 缺少所需的CD/DVD驱动器设备驱动程序
  16. windows 2008 R2 断电进入修复模式,并且无法使用usb键盘鼠标的解决方法
  17. mysql 查询最多的_mysql查询——查找订单最多的客户
  18. [OPENCV]010.深度神经网络(dnn模块)
  19. 当我们与某远程网络连接不上时,就需要跟踪路由查看,以便 了解在网络的什么位置出现了问题,满足该目的的命令是
  20. 计算机毕业设计,java+mysql毕业设计 ,动漫论坛

热门文章

  1. rcp(插件开发) 如果强制关闭对话框向导(Wizard)-貌似是第一个贴出解决办法的!
  2. Pytorch(八) —— Visdom
  3. 数据分析报告的7个模块
  4. 【渝粤教育】国家开放大学2018年秋季 2175T市场营销学 参考试题
  5. 简单仿微信的分组消息界面
  6. 服务器冷硬盘,浪潮SR整机柜冷存储方案助力BAT轻松实现海量存储
  7. Java循环练习——打印菱形、空心菱形、叉号
  8. 2021年安全员-B证(山东省)考试报名及安全员-B证(山东省)复审考试
  9. 【2022-11-21】建行积分兑换滑块
  10. 递归-八皇后问题(回溯算法)