首页 > 数据库 >MySql创建存储过程

MySql创建存储过程

时间:2023-02-28 17:47:55浏览次数:57  
标签:存储 SET BatchInsert 创建 num MySql tb id PROCEDURE

# 1.插入数据前先把表中的索引去掉,数据插入完成之后,再创建索引
# 2.关闭事务的自动提交
DROP PROCEDURE if EXISTS BatchInsert;
#分隔符
delimiter $$
CREATE PROCEDURE BatchInsert(IN initId INT, IN loop_counts INT)
BEGIN
    DECLARE num INT;
    DECLARE id INT;
    SET num = 0;
    SET id = initId;
    set autocommit = 0; -- 关闭自动提交事务,提高插入效率
    WHILE num < loop_counts DO
        INSERT INTO `xk-management`.`tb_user` (`second_name`,`name`, `account`, `password`, `email`) 
        VALUES  (CONCAT('20230228', 10000 + id), CONCAT('小明第',id,'号'),CONCAT('admin', 52 + id,'@test.com'), '62C8AD0A15D9D1CA38D5DEE762A16E0', CONCAT('admin', 52 + ID,'@test.com'));
        SET id = id + 1;
        SET num = num + 1;
    END WHILE;
    COMMIT;
END$$;
delimiter;  -- 界定符复原为默认的分号

CALL BatchInsert(1, 10);  -- 调用存储过程

select count(0) from tb_user;
select * from tb_user where is_deleted = 0 AND account = '[email protected]';

#查看创建的储存过程
SHOW PROCEDURE STATUS  LIKE 'Batch%';
SELECT * FROM information_schema.Routines Where ROUTINE_NAME = 'BatchInsert';
show create procedure BatchInsert; 

--删除存储过程
DROP PROCEDURE BatchInsert; 

添加字段:

CREATE PROCEDURE addColumn()
BEGIN
  DECLARE ise INT DEFAULT 0;
  select count(1) into ise from information_schema.columns where TABLE_SCHEMA = 'xk-management' and TABLE_NAME = 'tb_user' and COLUMN_NAME = 'login_level';
  if ise=0 then
    alter table tb_user add column login_level int DEFAULT '0' COMMENT '登录方式级别';
  end if;
END

CALL addColumn();

SHOW PROCEDURE STATUS  LIKE 'addColumn%';
drop procedure if exists addColumn;

#查看日志
SET GLOBAL log_output = 'TABLE';SET GLOBAL general_log = 'ON'; //日志开启

SELECT * from mysql.general_log ORDER BY event_time DESC;

SET GLOBAL log_output = 'TABLE'; SET GLOBAL general_log = 'OFF'; //日志关闭

标签:存储,SET,BatchInsert,创建,num,MySql,tb,id,PROCEDURE
From: https://www.cnblogs.com/eternality/p/17165318.html

相关文章

  • 数据库之二、表的创建、数据类型、表的约束
    1、表的创建 创建表之前一般需要在特定的库中创建表,先创建一个库,之后的表都在该库中创建。创建数据库的语法:......
  • mysql-索引
    一、索引回表:B+树索引主要可以分为两种索引,聚集索引和非聚集索引。聚集索引:也就是平常我们说的主键索引,在B+树中叶子节点存的是整行数据。非聚集索引:也叫二级索引,也......
  • C#文件转Byte存储到SQLServer数据库
    场景:临时不同的系统,相同的数据库,通用文件读取1.数据库字段采用:varbinary(max)类型2.代码注:这里获取文件是通过先将byte[]数据先存到当前服务器对应项目的文件夹中(加了......
  • luffy前端项目创建及配置
    一、配置准备环境#1.傻瓜式安装node:官网下载:https://nodejs.org/zh-cn/#2.安装cnpm,以后使用淘宝提供的cnpm即可,速度快。'''查看看装是否成功版本:cnpm-v可......
  • MySQL 内连接、外连接、全连接
    连接查询用于多表关联查询,连接方式不同,查询重点不同。内连接作用:查询多表之间交集部分数据关键词:innerjoin可简写为:join,即innerjoin=join图示:左外......
  • 存储引擎写入操作
    1.数据写入第一步,首先在数据更新操作的时候,记录旧数据到UndoLog日志文件中,用于提供回滚操作如执行一条删除语句:DELETEFROMuserWHEREid=1;则undolog会记录一......
  • 高可用架构设计ES+Redis+MySQL
    1、项目背景会员系统是一种基础系统,跟公司所有业务线的下单主流程密切相关。如果会员系统出故障,会导致用户无法下单,影响fanwei是全公司所有业务线。所以,会员系统必须保证......
  • mysql部署和密码管理
    mysql部署和密码管理一、SQL数据库MySQL简介MySQL是由瑞典MySQLAB公司开发,目前属于Oracle(甲骨文)旗下产品。是最流行的关系型数据库管理系统之一,关系数据库将数据保存在......
  • AWS Ubuntu22.04安装Mysql及配置远程连接
    一、升级apt资源包sudoaptupdate二、安装MySQLsudoaptinstallmysql-server三、启动MySQL服务sudoservicemysqlstart四、登录MySql查看MySql用户名/密码su......
  • springboot+mybatis+redis+mysql项目搭建,含示例Demo
    转载自:https://blog.csdn.net/qq_40772342/article/details/105049322========== redis在web开发中使用的场景很多,其中缓存是其中一个很重要的使用场景,之所以用作缓存,......