精华内容
下载资源
问答
  • mysql 存储过程批量删除
    2022-07-15 10:05:57

    开发时,我们经常需要批量构建数据,使用此方法可快速构建数据

    mysql创建存储过程批量导入数据

    delimiter $$$
    
    create procedure batchInsert()
    
    begin
    
    declare i int default 0;
    
    set i=0;
    
    start transaction;
    
    while i<1000 do
    
     //your insert sql  如: insert into xxxx;  注意主键id冲突
    
    set i=i+1;
    
    end while;
    
    commit;
    
    end
    
    $$$
    
    delimiter;
    
    call batchInsert();
    

    删除存储过程

    drop procedure batchInsert
    
    更多相关内容
  • 使用存储过程批量删除表 delimiter // create procedure dro01() begin declare i int; set i=21; while i<41 do set @dro_1=concat('drop table ','t',i,';'); select @dro_1; prepare tmt from @...

     使用存储过程批量删除表

    delimiter //
    create procedure dro01()
    begin
    declare i int;
    set i=21;
    while i<41 do
     set @dro_1=concat('drop table ','t',i,';');
     select @dro_1;
      prepare tmt from @dro_1;
      EXECUTE tmt;
      deallocate prepare tmt;
     set i=i+1;
    end while;
    end;//

    delimiter ;

     

    也可以使用函数CONCAT来生成批量执行sql语句,再执行批量sql语句。 

    批量删除特征表

    SELECT CONCAT( 'drop table ', table_name, ';' ) 
    FROM information_schema.tables 
    WHERE TABLE_SCHEMA = 'db_name' table_name LIKE 'test_%';

    批量删除存储过程

    SELECT CONCAT( 'drop table ', ROUTINE_NAME, ';' ) FROM information_schema.`ROUTINES`
    WHERE ROUTINE_SCHEMA='db_name';

     



    转载于:https://www.cnblogs.com/Knight7971/p/10278475.html

    展开全文
  • 一、存储过程函数详解 CREATE PROCEDURE : 声明存储过程 delete_matches:方法名用来调用 IN uid INTEGER :传参uid,INTEGER 类型。 IN 输入参数:表示调用者向过程传入值(传入值可以是字面量或变量) OUT ...

    一、存储过程函数详解

    CREATE  PROCEDURE : 声明存储过程

    delete_matches:方法名用来调用

    IN uid INTEGER :传参uid,INTEGER 类型。

    • IN 输入参数:表示调用者向过程传入值(传入值可以是字面量或变量)
    • OUT 输出参数:表示过程向调用者传出值(可以返回多个值)(传出值只能是变量)
    • INOUT 输入输出参数:既表示调用者向过程传入值,又表示过程向调用者传出值(值只能是变量)

    BEGIN :开始

    语句块{

    }

    END:结束

    二、编写存储过程

    CREATE  PROCEDURE  delete_matches (IN uid INTEGER)
    BEGIN
    
    DELETE FROM da_city_stlstj  WHERE id = uid;
    
    END

    三、调用测试

    CALL delete_matches(1); 

    成功结果如下↓

    展开全文
  • 按名称前后缀生成批量删除语句。 1、生成批量删除表语句 SELECT CONCAT('drop table ', group_concat(TABLE_NAME), ';') FROM information_schema.`TABLES` WHERE table_schema = '数据库名' AND TABLE_NAME LIKE '...

    思路:
    按名称前后缀生成批量删除语句。

    1、生成批量删除表语句

    SELECT CONCAT('drop table ', group_concat(TABLE_NAME), ';') FROM information_schema.`TABLES` 
    WHERE table_schema = '数据库名' AND TABLE_NAME LIKE 'spe_%' 
    

    生成语句如下:

    drop table spe_a,spe_b,spe_c;
    

    注意group_concat函数有长度限制,默认字符长度好像是1024,超过后会自动截取,所以表过多的时候最后一个表可能会被截取不全,需要修改生成的语句最后一个表名,然后执行。然后再生成再修改再执行,如此往复到没有语句生成为止。

    2、生成批量删除视图语句,视图的处理类似表

    SELECT CONCAT('drop view ', group_concat(TABLE_NAME), ';') FROM information_schema.VIEWS
    WHERE table_schema = '数据库名' AND TABLE_NAME LIKE 'v_abc%' ;
    

    3、生成批量删除存储过程语句

    SELECT  CONCAT( 'drop procedure ', ROUTINE_NAME, ';' ) FROM information_schema.`ROUTINES`
    WHERE ROUTINE_SCHEMA='数据库名' AND ROUTINE_NAME LIKE 'proc_aabbcc_%'; 
    
    展开全文
  • MySQL利用存储过程批量插入数据

    千次阅读 2021-08-19 09:23:48
    因最近想要测试一下MySQL百万级数据处理过程,所以要一次对数据库插入大量数据。 具体存储过程如下: delimiter $$$ create procedure inserttest() begin declare i int default 0; set i=0; start transaction; ...
  • 我们库里有几百个同名但后缀不一样的表,就比如table_1、table_2、...table_n,现在想删除这些表中同一个字段如name,因此就想到了存储过程,具体实现如下: CREATE DEFINER=`root`@`localhost` PROCEDURE `...
  • mysql存储过程批量插入数据

    千次阅读 2022-02-18 10:08:54
    一、利用临时表实现动态插入数据 ...#如果存在该表,删除该表 DROP TABLE IF EXISTS patient_info; #创建表 CREATE TABLE IF NOT EXISTS patient_info( brid00 VARCHAR(50) PRIMARY KEY COMMENT '用户唯一识别码',
  • 这个是用mysql写的存储过程,搭配里面一张数据表使用,达到高并发情况下获得唯一订单号的目的;原理:按照一定规则生成订单号后,把订单号插入数据表后,再返回给用户,由于数据表设置了主键,也就是当数据表中存在...
  • mysql存储过程批量删除数据

    千次阅读 2016-05-09 19:12:47
    在数据量很大的情况下,如果要删除大量数据,直接删除可能会导致mysql复制卡死,可以通过批量删除的方式来快速的删除大量数据DELIMITER $$DROP PROCEDURE IF EXISTS ‘delrows’$$CREATE PROCEDURE delrows() ...
  • 有时需要在数据库中插入大量数据,用于测试应用在大数据量时的运行是否正常,可以使用MySQL存储过程批量生成或删除测试数据。 2. 存储过程脚本 在以下脚本中,每插入/删除5000条数据提交一次。插入10万条数据耗时...
  • mysql使用存储过程实现批量插入 -- 删除存储过程 DROP PROCEDURE IF EXISTS proc_initData; -- 1、创建 follow_type 1信息部 0技术部 status 1提交 3通过 CREATE PROCEDURE proc_initData() BEGIN DECLARE i INT ...
  • 若表数据比较大,直接update会时间很慢,造成锁表,内存不够等问题,可以使用存储过程分批次进行更新提交,where条件最好加上索引,当然也可以批次删除; drop procedure if exists upt_tbl_nm; delimiter // create...
  • 场景:有的时候需要批量更新部分有规律的表或者修改其...如:批量删除所有表SELECT CONCAT( 'drop table ', table_name, ';' ) FROM information_schema.tables WHERE TABLE_SCHEMA = 'db_name'; 批量删除特征表SE
  • -- 如果存储过程存在就删除 DROP PROCEDURE IF EXISTS updateColumn; CREATE PROCEDURE updateColumn(in orig_str varchar(100),in new_str varchar(100),in db_name varchar(100),in cul_name varchar(100)) BEGIN ...
  • mysql 通过存储过程批量更新表数据

    千次阅读 2021-01-21 04:48:20
    方法一:使用临时表批量更新表数据 (注意操作用户需要有mysql的创建临时表权限)delimiter $$# 删除 已有的 存储过程DROP PROCEDURE IF EXISTS update_user_account_method;# 创建新的存储过程CREATE PROCEDURE ...
  • -- 一个简单的存储过程,通过拼接sql批量向数据库插入数据 -- 自定义声明结束符 DELIMITER $$ -- row_num要插入数据的行数,cuser当插入数据用户的id create procedure randUser(in row_num int, in cuser varchar...
  • Mysql创建存储过程--批量插入数据

    千次阅读 2021-01-19 02:18:20
    需求:批量插入上万条数据,...如下:步骤二:编写存储过程:1)检查库中函数下是否已存在同名的存储过程,如果存在,则需要执行删除存储过程的操作-- 如果需要存储过程已存在,则可以先执行删除存储过程操作DROP PR...
  • Mysql批量删除数据库

    2020-12-24 08:20:11
    前言 删除数据库的命令对于有点数据库操作经验的人应该不会陌生,命令结构如下: ...很抱歉,在Mysql上我至今还没有找到,我们可能很想写出一下这种语句,drop database like '%test%';但是这句话是有语法错误的,我
  • Mysql存储过程批量操作库表

    千次阅读 2018-06-06 14:59:18
    /*分库分表时,批量操作数据库(支持多库中表号一直累计的情况)*/BEGIN set @out = 8; -- 数据库个数 set @in = 256; -- 每个库的表个数 set @out_st = 0; set @in_st = 0; WHILE @out_st &lt; @out DO ....
  • MySQL通过函数存储过程批量插入

    千次阅读 2022-01-17 14:53:58
    在日常开发过程中有些场景需要批量造数进行测试,本文就是通过MySql数据库函数与存储过程实现批量插入数据,当然也可以通过代码循环插入数据,亦或是通过其他工具实现,这里要实现的是直接操作数据库,通过测试发现...
  • mysql 存储过程详解

    万次阅读 多人点赞 2022-07-23 21:13:30
    mysql 存储过程详解
  • 基于mysql存储过程实现自增批量插入数据 1、创建数据库表 -- 创建数据库 CREATE DATABASE IF NOT EXISTS db_mysql DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; -- 创建用户 CREATE USER 'test'@'%' ...
  • -- 判断存储test是否存在,如果存在则删除 DROP PROCEDURE IF EXISTS test; -- 创建存储过程 CREATE PROCEDURE test() BEGIN -- 声明循环变量int型 i DECLARE i INT DEFAULT 1; -- 设置i=0 set i=0; -- 循环100...
  • 问题参考自:https://www.zhihu.com/question/440066129/answer/1685329456 ,mysql中,一张表里有3亿数据,未分表,其中...答案为个人原创假设表的引擎是 Innodb, MySQL 5.7+删除一条记录,首先锁住这条记录,数据...
  • 存储过程简单来说,就是为以后的使用而保存的一条或多条 MySQL 语句的集合。可将其视为批处理文件。虽然他们的作用不仅限于批处理。 本文将通过一个实例初步掌握存储过程,当然要深入学习了解的话还是要看教程文档了...
  • 需求:原先有一个张表t_member 存储用户数据,现有个功能需要存储很多用户数据,为了不让t_member表的column继续膨胀,选择添加一张关联表(t_bbs_behavior_data) 为了简化开发,因此需要把t_member的id关联上t_bbs_...
  • 有时候为了分析SQL,不得不插入大量数据进行测试,以验证是否利用索引,这时我们就可以利用MYSQL存储过程批量插入
  • 查询数据库中的存储过程 有三种方法: 1> select name from mysql.proc where db='数据库名'; 或者 2> select routine_name from information_schema.routines where routine_schema='数据库名'; 或者 3>...
  • Mysql批量删除大量数据

    千次阅读 2022-08-26 22:56:01
    假设有一个表(syslogs)有1000万条记录,需要在业务不停止的情况下删除其中statusid=1的所有记录,差不多有600万条, 直接执行 DELETE FROM syslogs WHERE statusid=1 会发现删除失败,因为lock wait timeout exceed...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 53,943
精华内容 21,577
热门标签
关键字:

mysql 存储过程批量删除

mysql 订阅