• 业务逻辑的存储过程(添加学生的案例)(自动编号)


     1 -- 带业务逻辑的存储过程
     2 
     3 -- 建表
     4 create table student(
     5 sid varchar(8) primary key,
     6 sname varchar(10),
     7 sex varchar(2),
     8 age int,
     9 classno varchar(6)
    10 );
    11 -- 表中的数据
    12 insert into student values
    13 ('20170101','张石瑞','','19','201701'),
    14 ('20170201','李佛','','20','201702'),
    15 ('20170202','王法无','','19','201702')
    16 
    17 -- 创建存储过程
    18 create procedure addStu(sname1 varchar(20),sex1 varchar(1), age1 int,classno1 varchar(6))
    19 begin
    20 declare nsid varchar(8);
    21 -- 根据给的 classno1 参数,查询该班级目前的最大编号
    22 select sid into nsid from student where sid like concat(classno1,'%') order by sid desc limit 0,1;
    23         if nsid is null THEN
    24             set nsid=concat(classno1,'01');
    25         else 
    26             set nsid=nsid+1;
    27         end if;
    28 insert student values(nsid,sname1,sex1,age1,classno1);
    29 select "添加成功!";
    30 end
    31 
    32 -- 执行存储过程
    33 call addStu('新生3','','19','201702');
    34 
    35 -- 删除存储过程
    36 drop procedure if exists addStu
    37 
    38 -- 关键字的解释:
    39 /*
    40 concat(classno1,'%') 根据 classno1 进行模糊查询
    41 order by sid desc 根据 sid 进行降序排列
    42 limit 0,1 意思是 去掉前面 0 条数据 显示一条数据 
    43 */
  • 相关阅读:
    高速传输线PCB设计
    带状线和微带线
    资源分配
    异步时钟切换电路
    Mathcad操作tips:2D绘图
    Mathcad操作tips:函数、符号计算
    慢性胃炎注意事项
    Arduino I2C + 三轴加速度计ADXL345
    Arduino SPI + SPI Flash芯片W25Q80BV
    Arduino I2C + 三轴加速度计LIS3DH
  • 原文地址:https://www.cnblogs.com/Lvhengshuai/p/6826219.html
Copyright © 2020-2023  润新知