首页 > 数据库 >Mysql批量插入数据

Mysql批量插入数据

时间:2024-05-14 15:31:20浏览次数:14  
标签:存储 批量 代码 Mysql 复用 插入 SQL 过程 数据库

有个需求:需要在table1中插入205条数据,role_id固定为65,menu_id从91开始

方法一:存储过程

1、什么是存储过程?

MySQL 存储过程(Stored Procedure)是一组为了完成特定功能的 SQL 语句集合。用户通过指定的存储过程名称和参数(如果有的话)来调用并执行它。存储过程可以在程序中被多次调用,并且可以接受参数、返回数据、对数据进行复杂的计算和转换等。

2、存储过程的特点?

1、代码复用:存储过程可以在不同的地方被多次调用,通过定义一次存储过程,可以减少代码的重复性,提高开发效率。这种特性使得存储过程在数据库编程中成为了一种重要的代码复用工具。
2、安全性提升:存储过程可以对数据进行有效的安全验证和权限控制,只有被授权的用户才能执行存储过程中的操作。这在一定程度上增强了数据库的安全性,降低了数据泄露或被非法访问的风险。
3、性能优化:存储过程在数据库服务器上执行,可以减少网络传输量,提高数据库的执行效率。这是因为存储过程在首次执行时会被编译并存储在数据库中,后续调用时可以直接执行而无需再次编译,从而减少了网4、络传输的开销和数据库的响应时间。
5、事务控制:存储过程可以将一系列SQL语句包裹在一个事务中,实现原子性操作,确保数据的一致性。这种特性使得存储过程在处理复杂的数据库操作时更加可靠和稳定。
6、增强SQL语言的功能和灵活性:存储过程可以使用流控语句(如if/else、case、while等)编写,具有强大的灵活性和可扩展性。通过编写存储过程,可以实现复杂的逻辑功能和数据处理操作,从而增强SQL语言的功能和灵活性。
7、提高SQL的复用性和标准:由于存储过程可以被多次调用和共享,因此它可以提高SQL代码的复用性和标准化程度。这有助于减少代码冗余和提高代码质量。
8、模块化、封装和代码复用:存储过程具有函数的普遍特性,如模块化、封装和代码复用等。这使得存储过程可以作为一个独立的模块进行开发和维护,提高了代码的可读性和可维护性

3、存储过程格式

delimiter 自定义结束符号
create procedure 储存名(IN IN_NAME VARCHAR(255))
begin
  sql语句
end 自定义的结束符合
delimiter ;

注意:

  • DELIMITER 用于更改标准分隔符,以便可以在存储过程中使用 BEGIN 和 END 语句。在存储过程定义结束后,再将其改回原来的值(通常是分号 ;)。
  • IN_NAME 是一个输入参数,其数据类型为 VARCHAR(255)。也可以不带参数

实现方法:

-- 存储过程批量插入数据--执行SQL脚本
DELIMITER //  
CREATE PROCEDURE PrintNumbers()  
BEGIN  
    DECLARE v_counter INT DEFAULT 1;  
    WHILE v_counter <= 200 DO  
        INSERT INTO table1(role_id, menu_id) VALUES ('65', '91'+v_counter);  
        SET v_counter = v_counter + 1;  
    END WHILE;  
END //  
DELIMITER ;  
 
-- 调用存储过程  --执行SQL语句
CALL PrintNumbers();

-- 查询存储过程--执行SQL语句
SELECT * 
FROM information_schema.ROUTINES
WHERE ROUTINE_TYPE = 'PROCEDURE'
and SPECIFIC_NAME ='PrintNumbers';

-- 删除存储过程--执行SQL语句
DROP PROCEDURE IF EXISTS PrintNumbers;

结果:

 

标签:存储,批量,代码,Mysql,复用,插入,SQL,过程,数据库
From: https://www.cnblogs.com/zhaoboyuanyuan/p/18191404

相关文章

  • mysql 锁
    1,介绍  锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(CPU、RAM、I/O)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。......
  • Centos7下Prometheus+Grafana部署 redis 以及 mysql 监控
    Prometheus部署mysql监控本篇文章部分内容与我前一篇文章衔接,看不明白的可以参考我前一篇文章Centos7下搭建Prometheus+Grafana并部署基础监控Redis监控对于Redis的监控,Prometheus可以收集多种指标,包括但不限于:命令统计:如每个命令的调用次数、执行时间等。内存使用情......
  • mysql触发器
    1.介绍  触发器是与表有关的数据库对象,指在insert/update/delete之前(BEFORE)或之后(AFTER),触发并执行触发器中定义的SQL语句集合。触发器的这种特性可以协助应用在数据库端确保数据的完整性,日志记录,数据校验等操作。  使用别名OLD和NEW来引用触发器中发生......
  • 文件(夹)批量重命名数字、字母、日期、中文数字大写小写
    首先,需要用到的这个工具:度娘网盘提取码:qwu2蓝奏云提取码:2r1z 目标是重命名下面5个文件(也可以是文件夹等,任意),从大写中文数字“贰”开始 打开工具,找到“文件批量复制”版块,快捷键Ctrl+5 找到右下角重命名按钮,点击打开 把那5个要重命名的文件拖入(也可以右边的按......
  • docker 安装 MantisBT,并配置mysql
    1、拉取镜像dockerpullvimagick/mantisbt 2、先预运行容器,用于复制配置dockerrun-d-p10080:80--namemantisbtvimagick/mantisbt 3、创建本地数据挂载目录mkdir-p/home/dockerdata/mantisbt 4、复制容器配置到本地挂载目录dockercpmantisbt:/var/......
  • 安装mysql和运程连接
    一、拉取镜像#拉取镜像dockerpullmysql#或者dockerpullmysql:latest#指定版本号dockerpullmysql:5.7#以上两个命令是一致的,默认拉取的就是latest版本的#我们还可以用下面的命令来查看可用版本:dockersearchmysql二、查看镜像dockerimages三、运......
  • AutoMySQLBackup加密备份解密问题浅析
    AutoMySQLBackup备份配置了加密选项过后,它会将数据库的备份文件加密。测试解密这些加密的备份文件时遇到错误(密钥做了脱敏处理)。$ openssl enc -aes-256-cbc -d -in  daily_mysql_2024-05-14_09h09m_Tuesday.sql.gz.enc \>   -out daily_mysql_2024-05-14_09h09m_T......
  • Mysql入门操作 5.0
    orderby子句: 直接使用orderby对相应的列进行排序是从小到大,在末尾加上desc是从大到小排序;如下图 limit子句: 下面是使用实例其实也是增加一个后缀,限制所要显示信息行数,如果limit后面只跟一个数字就是默认从第一个开始取结果,如果后跟两个数字表示从第一个数字开始取第二......
  • MYSQL存储过程-练习3 repeat循环
    repeat循环1DELIMITER$$23CREATEPROCEDURE`sp_repeat`()4BEGIN5DECLAREiINT;6SETi=1;7REPEAT8SELECTi;9SETi=i+1;10UNTILi>=511ENDREPEAT;12END$$1314DELIMITER;执行存储过程1mysql>callsp_repea......
  • MYSQL存储过程-练习4 loop循环
    创建存储过程1DELIMITER$$23CREATEPROCEDURE`sp_loop`()4BEGIN5DECLAREiINT;6SETi=1;7lp1:LOOP8SELECTi;9SETi=i+1;10IFi>5THEN11LEAVElp1;12ENDIF;13ENDLOOP;14END$$1516DELIMIT......