Mysql批量数据导入
来源:互联网 发布:凯聪智云软件 编辑:程序博客网 时间:2024/05/16 14:47
建库
创建数据库脚本
CREATE DATABASE bigDate;USE bigDate;
建表
1.创建emp表
CREATE TABLE `emp` ( `id` int(11) NOTNULL AUTO_INCREMENT COMMENT 'id', `empno`mediumint(9) NOT NULL DEFAULT '0' COMMENT '编号', `ename`varchar(20) NOT NULL DEFAULT '""' COMMENT '名字', `job` varchar(9)NOT NULL DEFAULT '""' COMMENT '工作', `mgr` mediumint(9)NOT NULL DEFAULT '0' COMMENT '上级编号', `hiredate` dateNOT NULL COMMENT '入职时间', `sal` decimal(10,2)NOT NULL COMMENT '薪水', `comm`decimal(10,2) NOT NULL COMMENT '红利', `deptno`mediumint(9) NOT NULL DEFAULT '0' COMMENT '部门编号', PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2.创建dept表
CREATE TABLE `dept` ( `id` int(11) NOTNULL AUTO_INCREMENT COMMENT 'id', `deptno`mediumint(9) DEFAULT '0' COMMENT '部门编号', `dname`varchar(20) NOT NULL DEFAULT '""' COMMENT '部门名称', `Ioc` varchar(13)NOT NULL DEFAULT '""' COMMENT '所在楼层', PRIMARY KEY(`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
设置参数
在创建函数,如果报错:This function has none of DETERMINISTIC………………..
这是由于开启过慢查询日志,因为我们开启了bin-log,我们就必须为我们的function制定一个参数。
基本命令:
set variables like ‘log_bin_trust_function_creators’;
基本命令:
setglobal log_bin_trust_function_creators=1;
永久的生效的方法:
在linux下,/etc/my.cnf下my.cnf[mysqld]加上log_bin_trust_function_creators=1
在windowns下,my.ini[mysqld]上log_bin_trust_function_creators=1
创建函数
1.随机产生字符串
DELIMITER $$CREATE FUNCTION rand_string(n INT) RETURNSVARCHAR(255)BEGIN DECLARE chars_str VARCHAR(100) DEFAULT'abcdefghijklmnopqrstuvwxyzABCDEFJHIJKLMNOPQRSTUVWXYZ'; DECLARE return_str VARCHAR(255) DEFAULT ''; DECLARE i INT DEFAULT 0; WHILE i<n DO SET return_str=CONCAT(return_str,SUBSTRING(chars_str,FLOOR(1+RAND()*52),1)); SET i=i+1; END WHILE; RETURN return_str; END$$ DELIMITER ;
2.随机产生部门编号
DELIMITER $$CREATE FUNCTION rand_num() RETURNS INT(5) BEGIN DECLARE i INT DEFAULT 0; SET i=FLOOR(100+RAND()*10); RETURN i; END$$DELIMITER ;
创建存储过程
1.创建插入emp表存储过程
DELIMITER $$CREATE PROCEDURE insert_emp(IN START INT(10),IN max_num INT(10)) BEGIN DECLARE i INT DEFAULT 0; #set autocommit=0 把autocommit设置成0 SET autocommit=0; REPEAT SET i=i+1; INSERT INTOemp(empno,ename,job,mgr,hiredate,sal,comm,deptno)VALUES((START+i),rand_string(6),'SALESMAIN',0001,CURDATE(),2000,400,rand_num()); UNTIL i=max_num END REPEAT; COMMIT; END$$DELIMITER ;
2.创建插入dept表存储过程
DELIMITER $$CREATE PROCEDURE insert_dept(IN START INT(10),IN max_num INT(10)) BEGIN DECLARE i INT DEFAULT 0; SET autocommit=0; REPEAT SET i=i+1; INSERT INTOdept(deptno,dname,Ioc)VALUES((START+i),rand_string(10),rand_string(8)); UNTIL i=max_num END REPEAT; COMMIT; END$$DELIMITER ;
调用存储过程
1.调用插入dept存储过程
基本命令: CALL insert_dept(100,10);
2.调用插入emp存储过程
基本命令:CALL insert_emp(100001,500000);
阅读全文
0 0
- mysql批量导入数据
- Mysql批量数据导入
- mysql批量导入导出数据
- Mysql批量导入数据慢
- mysql高速批量导入数据
- excel数据批量导入到Mysql数据库
- 批量数据从excel导入到mysql
- MySQL批量导入Excel、txt数据
- mysql批量导入txt文件数据
- 将数据从文本文件批量导入mysql
- MySQL批量导入Excel、txt数据
- MySQL批量导出、导入文本数据
- txt文档批量向MySQL导入数据
- mysql批量导出、导入文本数据
- greenplum 批量导入mysql 数据库数据
- MySQL实战(一)批量导入数据
- Django向Mysql中批量导入数据
- 批量导入数据到MySQL数据库
- 浅谈C++多态
- hihocoder1175(拓扑排序)
- 映射
- Socket编程指南及示例程序
- 读《Nature》论文,看AlphaGo
- Mysql批量数据导入
- TabLayout
- spring笔记
- java8新特性
- JavaScript slice()和substring()的区别
- 纯虚函数和抽象类
- 数据库基础学习笔记
- Batch Normalization 学习笔记(一))
- 【JavaWeb】Log4j2的使用(二)