一个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. 使用MyEclipse搭建java Web项目开发

    转自:http://blog.csdn.net/jiuqiyuliang/article/details/36875217 首先,在开始搭建MyEclipse的开发环境之前,还有三步工具的安装需要完成 ...

  2. asp.net using library ClosedXML to export excel

    Reference:  http://closedxml.codeplex.com/ 1. First add refenrence ClosedXML.dll and DocumentFormat. ...

  3. [Openstack]使用devstack自己主动化安装

    os环境为: ubuntu14.04 安装步骤: 更新系统软件包: sudo apt-get dist-upgrade #出现无法訪问到ubuntu官网的错误. 安装git: sudo apt-get ...

  4. 安卓(android)建立项目时失败,出现Android Manifest.xml file missing几种解决方法?(总结中)

    安卓(android)建立项目时失败.出现AndroidManifest.xml file missing几种解决方法?(总结中) Eclipse新建项目.遇到这种问题.注意例如以下: 1.文件名称最 ...

  5. [AngularJS] Design Pattern: Simple Mediator

    We're going to use rootScope emit here to send out events and then we're going to listen for them in ...

  6. C# 将MSMQ消息转换成Json格式 【优化】

    C# 将MSMQ消息转换成Json格式  [优化] 转换函数: private string ConvertToJSON(string label, string body) { //TODO: co ...

  7. linux系统用户锁定与解锁

    1.使用passwd命令锁定与解锁账号 [root@rhel7 ~]# passwd -l lxj --- -l 锁定 Locking password for user lxj. passwd: S ...

  8. 通过编写一个简单的漏洞扫描程序学习Python基本语句

    今天开始读<Python绝技:运用Python成为顶级黑客>一书,第一章用一个小例子来讲解Python的基本语法和语句.主要学习的内容有:1. 安装第三方库.2. 变量.字符串.列表.词典 ...

  9. Centos6 安装vnc

    Centos6 安装vnc 1. 安装 使用yum方式安装 yum install tigervnc-server tigervnc #启动 vncserver #重启动 /etc/init.d/vn ...

  10. ASP.NET-FineUI开发实践-8(二)

    把上回的做一些改进 1.点击grid2的行改变TriggerBox1的值 var v = $(item).find('.x-grid-cell-Name div.x-grid-cell-inner') ...