mysql批量数据脚本

  • 1 建表
  1. create table dept(
  2. id int unsigned primary key auto_increment,
  3. deptno mediumint unsigned not null default 0,
  4. dname varchar(20) not null default "",
  5. loc varchar(13) not null default ""
  6. )engine=innodb default charset=gbk;
  7. create table emp(
  8. id int unsigned primary key auto_increment,
  9. empno mediumint unsigned not null default 0,/*编号*/
  10. ename varchar(20) not null default "",/*姓名*/
  11. job varchar(9) not null default "",/*工作*/
  12. mgr mediumint unsigned not null default 0,/*上级编号*/
  13. hiredate date not null,/*入职时间*/
  14. sal decimal(7,2) not null, /*薪水*/
  15. comm decimal(7,2) not null,/*红利*/
  16. deptno mediumint unsigned not null default 0/*部门编号*/
  17. )engine=innodb default charset=gbk;
  • 2 设置参数
  1. show variables like 'log_bin_trust_function_creators';
  2. set global log_bin_trust_function_creators=1;
  • 3 创建函数
  1. a.随机产生字符串
  2. delimiter $$
  3. create function rand_string(n int) returns varchar(255)
  4. begin
  5. declare chars_str varchar(100) default 'qwertyuiopasdfghjklzxcvbnm';
  6. declare return_str varchar(255) default '';
  7. declare i int default 0;
  8. while i<n do
  9. set return_str=concat(return_str,substring(chars_str,floor(1+rand()*52),1));
  10. set i=i+1;
  11. end while;
  12. return return_str;
  13. end $$
  14. b.随机产生部门编号
  15. delimiter $$
  16. create function rand_num() returns int(5)
  17. begin
  18. declare i int default 0;
  19. set i=floor(100+rand()*10);
  20. return i;
  21. end $$
  • 4 创建存储过程
  1. a.创建往emp表中插入数据的存储过程
  2. delimiter $$
  3. create procedure insert_emp(in start int(10),in max_num int(10))
  4. begin
  5. declare i int default 0;
  6. /*把autocommit设置成0*/
  7. set autocommit= 0;
  8. repeat
  9. set i=i+1;
  10. insert into emp(empno,ename,job,mgr,hiredate,sal,comm,deptno)
  11. values((start+i),rand_string(6),'SALESMAN',0001,curdate(),2000,400,rand_num());
  12. until i=max_num end repeat;
  13. commit;
  14. end $$
  15. b.创建往dept表中插入数据的存储过程
  16. delimiter $$
  17. create procedure insert_dept(in start int(10),in max_num int(10))
  18. begin
  19. declare i int default 0;
  20. set autocommit=0;
  21. repeat
  22. set i=i+1;
  23. insert into dept(deptno,dname,loc) values((start+i),rand_string(10),rand_string(8));
  24. until i=max_num end repeat;
  25. commit;
  26. end $$
  • 5 调用存储过程
  1. call insert_dept(100,10);//从deptno为100起插入10条随机生成数据
  2. call insert_emp(100001,5000000);//从empno为100001起插入5000000条随机生成数据

mysql批量数据脚本的更多相关文章

  1. MySQL批量数据脚本示例

    一.建表 # 新建库 create database bigData; use bigData; #1 建表dept CREATE TABLE dept( id INT UNSIGNED PRIMAR ...

  2. Mysql 函数定义及批量数据脚本

    零.说在前面 在定义函数之前 需要先将 log_bin_trust_function_creators 值设为开启,原因如下 在主从复制的两台Mysql服务器中,slaver会从master复制数据, ...

  3. shell编写mysql抽取数据脚本

    #!/bin/bash DT=`date +%Y%m%d` #当前日期YESTERDAY=`date -d "yesterday" +%Y-%m-%d` #昨天,用于处理数据的日期 ...

  4. mysql批量数据导入探究

    最近工作碰到一个问题,如何将大量数据(100MB+)导入到远程的mysql server上. 尝试1: Statement执行executeBatch的方法.每次导入1000条记录.时间为12s/10 ...

  5. MySQL造数据脚本-亲试

    DELIMITER $$CREATE DEFINER=`root`@`192.168.2.254` PROCEDURE `pjzzspdz_fpmx_initdata12101245`()BEGIN ...

  6. mysql 批量数据循环插入

    双重循环插入 DELIMITER ;; CREATE PROCEDURE test_insert() BEGIN DECLARE a INT DEFAULT 1; DECLARE b TINYINT ...

  7. shell脚本获取mysql插入数据自增长id的值

    shell脚本获取mysql插入数据自增长id的值 在shell脚本中我们可以通过last_insert_id()获取id值,但是,需要注意的是,该函数必须在执行插入操作的sql语句之后,立即调用,否 ...

  8. mysql进阶(十五) mysql批量删除大量数据

    mysql批量删除大量数据 假设有一个表(syslogs)有1000万条记录,需要在业务不停止的情况下删除其中statusid=1的所有记录,差不多有600万条, 直接执行 DELETE FROM s ...

  9. MySQL批量导入Excel数据

    MySQL批量导入Excel数据 1.确定需要导入数据的表名称以及字段,然后在新建的Excel表中,按照表字段正确排序:(注:(Excel文件的名称最好和数据库的名称一致,sheet表的名字最好和表名 ...

随机推荐

  1. JavaScript的DOM编程--09--节点的替换

    节点的替换: 1). replaceChild(): 把一个给定父元素里的一个子节点替换为另外一个子节点 var reference = element.replaceChild(newChild,o ...

  2. MySQL数据库学习02: SELECT语句

    声明:本篇文章大多数内容出自<MySQL必知必会>,仅供学习参考,勿作他用! 第4章 检索数据 4.1 SELECT语句 SELECT子句用于检索数据库中的表数据.它几乎是MySQL中最常 ...

  3. java面向对象知识整理(一)

    1.面向对象思想 概述:面向对象是相对于面向过程而言的,面向过程强调的是功能,面向对象强调的是将功能封装进对像,强调具备功能的对象. 特点:(1)符合人们思考习惯的一种思想. (2)将复杂的事情简单化 ...

  4. [js高手之路] vue系列教程 - vue的事件绑定与方法(2)

    一.在vue中,绑定事件,用v-on:事件类型, 如绑定一个点击事件, 我们可以这样子做 window.onload = function () { var c = new Vue({ el : 'b ...

  5. centos6环境下使用yum安装Ambari

    前言: Ambari是apache下面的开源项目,主要通过web UI方式对Hadoop集群进行统一创建和管理,以节省Hadoop集群的运维成本.本文通过安装过程中的截图简要介绍一下相关步骤供需要的朋 ...

  6. g4e基础篇#3 Git安装与配置

    g4e 是 Git for Enterprise Developer的简写,这个系列文章会统一使用g4e作为标识,便于大家查看和搜索. 章节目录 前言 1. 基础篇: 为什么要使用版本控制系统 Git ...

  7. 从0到1搭建spark集群---企业集群搭建

    今天分享一篇从0到1搭建Spark集群的步骤,企业中大家亦可以参照次集群搭建自己的Spark集群. 一.下载Spark安装包 可以从官网下载,本集群选择的版本是spark-1.6.0-bin-hado ...

  8. mysql自连接求累计金额

  9. C# ASP.NET 转换为int型的方法 很实用

    很多新手在搞c#或者.net开发的时候总会碰到一些小问题,如何知道字符能不能为int型  在这里我写了一个小的函数仅供大家参考: /// <summary> /// 判断是不是int型 / ...

  10. Box布局

    import sys from PyQt4 import QtCore, QtGui class MainWindow(QtGui.QWidget): def __init__(self, paren ...