一个demo:

CREATE TABLE dept_InnoDB(
  deptno MEDIUMINT NOT NULL DEFAULT 0 ,
  dname VARCHAR(20) NOT NULL DEFAULT "" ,
  loc VARCHAR(13) NOT NULL DEFAULT ""
  )ENGINE = InnoDB DEFAULT CHARSET = utf8;

创建2个function.

CREATE DEFINER = `root`@`localhost` FUNCTION rand_string (n int)
RETURNS varchar(255)
BEGIN
declare chars_str varchar(100) default 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
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;

while do

end while; 语法

CREATE DEFINER = `root`@`localhost` FUNCTION `rand_loc`()
RETURNS varchar(10)
BEGIN
declare return_str varchar(10) default 'Shanghai';
declare n int default 0;
set n=floor(rand()*10);
case n
when 0 then set return_str='Shanghai';
WHEN 1 THEN SET return_str = 'Beijing';
WHEN 2 THEN SET return_str = 'Shenzhen';
WHEN 3 THEN SET return_str = 'Guangzhou';
WHEN 4 THEN SET return_str = 'Tianjin';
WHEN 5 THEN SET return_str = 'Chongqing';
WHEN 6 THEN SET return_str = 'Chengdu';
WHEN 7 THEN SET return_str = 'Wuhan';
WHEN 8 THEN SET return_str = 'Changcha';
WHEN 9 THEN SET return_str = 'Shenyang';
ELSE SET return_str = 'Dalian';
end CASE; return return_str;
end;

case x

when 0 then set x='''

.

end case 语法

一个存储过程:

CREATE DEFINER = `root`@`localhost` PROCEDURE insert_dept(IN start int(10),IN max int(10))
BEGIN
declare i int default 0;
set autocommit=0;
REPEAT
set i=i+1;
insert into dept_innodb values((start+i),rand_string(6),rand_loc());
until i=max
end repeat;
commit;
END;

保存到文件中:

select * from dept_innodb into outfile "C:/users/table1.csv"
fields TERMINATED by ','
lines TERMINATED by '\r\n'
;

InnoDB 事务模式与锁定

在 InnoDB 事务处理模式中, the goal has been to combine the best properties of a multiversioning database to traditional two-phase locking. InnoDB 进行行级的锁定,并以与 Oracle 非锁定读取(non-locking)类似的方式读取数据。 InnoDB 中的锁定表的存储是如此(space-efficiently)而不再需要扩大锁定: 典型特色是一些用户可能锁定数据库中的任意行或任意行的子集,而不会引起 InnoDB 内存运行溢出。

在 InnoDB 中,所有的用户操作均是以事务方式处理的。如果 MySQL 使用了自动提交(autocommit)方式,每个 SQL 语句将以一个单独的事务来处理。MySQL 通常是以自动提交方式建立一个服务连接的。

如果使用 SET AUTOCOMMIT = 0 关闭自动提交模式,就认为用户总是以事务方式操作。如果发出一个 COMMIT 或 ROLLBACK 的 SQL 语句,它将停止当前的事务而重新开始新事务。两个语句将会释放所有在当前事务中设置的 InnoDB 锁定。COMMIT 意味着永久改变在当前事务中的更改并为其它用户可见。ROLLBACK 正好相反,它是取消当前事务的所有更改。

如果以 AUTOCOMMIT = 1 建立一个连接,那么用户仍然可以通过以 BEGIN 开始和 COMMIT 或 ROLLBACK 为语句结束的方式来执行一个多语句的事务处理。

php生成随机数据:http://www.haogongju.net/art/1414203

http://www.jb51.net/article/19470.htm

mysql生成随机测试数据的更多相关文章

  1. 如何使用Visual Studio 2010在数据库中生成随机测试数据

    测试在项目中是很重要的一个环节,在Visual Studio 2010中,在测试方面已经有很好的支持了,比如有单元测试,负载测试等等.在数据测试的方面,Visual Studio 2010,还支持对数 ...

  2. Python生成随机测试数据

    前言 安装 pip install Faker 使用 from faker import Faker fake = Faker() name = fake.name() address = fake. ...

  3. mysql生成随机时间

    mysql> update test set create_time=concat('2013-10-01 ', floor(10+rand()*10),':',floor(10+rand()* ...

  4. Mysql 生成随机数字

    其实思路很简单,利用MySQL现有的函数,然后进行加工处理,达到预期的结果.可以用到的MySQL函数为rand() ,以及 round() 函数. 具体为:select round(rand()*10 ...

  5. mysql快速生成批量测试数据

    mysql快速生成批量测试数据 参考资料: https://blog.csdn.net/oahz4699092zhao/article/details/53332148 -- 创建一个临时内存表 ; ...

  6. Mysql 生成不重复的随机数字

    在网上查找Mysql 生成不重复的随机数字 ,竟然没找到合适的例子. 其实思路很简单,利用MySQL现有的函数,然后进行加工处理,达到预期的结果.可以用到的MySQL函数为rand() ,以及 rou ...

  7. C# 写的一个生成随机汉语名字的小程序

    最近因为要做数据库相关的测试,频繁使用到测试数据,手动添加太过于麻烦,而且复用性太差,因此干脆花了点时间写了一个生成随机姓名和相关数据的类,贴在这里,有需用的同志们可以参考一下.代码本身质量不好,也不 ...

  8. SQL Server创建随机测试数据

    我们在做数据仓库开发的过程中,经常需要插入大量的测试数据来测试数据库查询性能和计算占用的存储空间等.本文主要介绍下不借用第三方的工具在数据库中直接生成大量的测试数据. 需求 每一行包含5个日期字段和一 ...

  9. Oracle生成千万测试数据

    oracle 生成千万测试数据 做数据库开发或管理的人经常要创建大量的测试数据,动不动就需要上万条,如果一条一条的录入,那会浪费大量的时间,本文介绍了Oracle中如何通过一条SQL快速生成大量的测试 ...

随机推荐

  1. MVC4 Razor视图下使用iframe加载RDLC报表

    MVC视图下默认是不支持服务器端控件的,所以,为了能够通过report viewer控件加载报表,需要在MVC视图添加嵌入的页面. 起初在stackoverflow上找到一个解决方案,见这里.不过这里 ...

  2. java笔记8之选择结构IF

    注意1 A比较表达式无论简单还是复杂,结果必须是boolean类型        B:if语句控制的语句体如果是一条语句,大括号可以省略:          如果是多条语句,就不能省略.建议永远不要省 ...

  3. BootStrap--Tables(表格) MVC中不刷新做增,删,改(C#)

    自带的Tables会有自动分页,搜索等一些动能,很方便,唯一的不足就是添加,修改,删除数据需要刷新页面,并不能静态. 下面说的是如何不刷新页面(Ajax)去执行增,删,改操作. 需要用到的样式,JS库 ...

  4. SecureCRT连接vm中的ubuntu

    如何使用SecureCRT连接ubuntu 用secureCRT连接Ubuntu是出现远程系统拒绝访问..经过一翻研究才知道Ubuntu上没有ssh.. 一下为连接过程. 1. 首先要明白什么是ssh ...

  5. poj 3046 Ant Counting (DP多重背包变形)

    题目:http://poj.org/problem?id=3046 思路: dp [i] [j] :=前i种 构成个数为j的方法数. #include <cstdio> #include ...

  6. [Redux] Reducer Composition with combineReducers()

    Previous, we do composition with objects: const todoApp = (state = {}, action) => { return { todo ...

  7. UITableViewStyleGrouped顶部留白问题

    我这样创建, ? 1 2 self.tableView = [[UITableView alloc] initWithFrame:                       CGRectMake(0 ...

  8. linux telnet服务安装与配置

    关闭防火墙:service iptabls stop            chkconfig iptabls off 1.安装telnet服务 [root@rheltest1 ~]# rpm -qa ...

  9. 【网络流#6】POJ 3041 Asteroids 二分图最大匹配 - 《挑战程序设计竞赛》例题

    学习网络流中ing...作为初学者练习是不可少的~~~构图方法因为书上很详细了,所以就简单说一说 把光束作为图的顶点,小行星当做连接顶点的边,建图,由于 最小顶点覆盖 等于 二分图最大匹配 ,因此求二 ...

  10. 使用socket实现聊天功能

    public class Service { //服务器 public static void main(String[] args) { ServerSocket serverSocket=null ...