mysql生成随机测试数据
一个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生成随机测试数据的更多相关文章
- 如何使用Visual Studio 2010在数据库中生成随机测试数据
测试在项目中是很重要的一个环节,在Visual Studio 2010中,在测试方面已经有很好的支持了,比如有单元测试,负载测试等等.在数据测试的方面,Visual Studio 2010,还支持对数 ...
- Python生成随机测试数据
前言 安装 pip install Faker 使用 from faker import Faker fake = Faker() name = fake.name() address = fake. ...
- mysql生成随机时间
mysql> update test set create_time=concat('2013-10-01 ', floor(10+rand()*10),':',floor(10+rand()* ...
- Mysql 生成随机数字
其实思路很简单,利用MySQL现有的函数,然后进行加工处理,达到预期的结果.可以用到的MySQL函数为rand() ,以及 round() 函数. 具体为:select round(rand()*10 ...
- mysql快速生成批量测试数据
mysql快速生成批量测试数据 参考资料: https://blog.csdn.net/oahz4699092zhao/article/details/53332148 -- 创建一个临时内存表 ; ...
- Mysql 生成不重复的随机数字
在网上查找Mysql 生成不重复的随机数字 ,竟然没找到合适的例子. 其实思路很简单,利用MySQL现有的函数,然后进行加工处理,达到预期的结果.可以用到的MySQL函数为rand() ,以及 rou ...
- C# 写的一个生成随机汉语名字的小程序
最近因为要做数据库相关的测试,频繁使用到测试数据,手动添加太过于麻烦,而且复用性太差,因此干脆花了点时间写了一个生成随机姓名和相关数据的类,贴在这里,有需用的同志们可以参考一下.代码本身质量不好,也不 ...
- SQL Server创建随机测试数据
我们在做数据仓库开发的过程中,经常需要插入大量的测试数据来测试数据库查询性能和计算占用的存储空间等.本文主要介绍下不借用第三方的工具在数据库中直接生成大量的测试数据. 需求 每一行包含5个日期字段和一 ...
- Oracle生成千万测试数据
oracle 生成千万测试数据 做数据库开发或管理的人经常要创建大量的测试数据,动不动就需要上万条,如果一条一条的录入,那会浪费大量的时间,本文介绍了Oracle中如何通过一条SQL快速生成大量的测试 ...
随机推荐
- Asp.Net Webapi路由基本设置
1.直接在Global.asax中添加配置 如: using MvcApplication4.App_Start; using System; using System.Collections.Gen ...
- js转码和解码兼容低版本火狐
function HTMLEncode(html) { var temp = document.createElement("div"); ...
- SpriteKit游戏开发
http://blog.csdn.net/larrysai/article/category/1663301 http://blog.csdn.net/ping_yun_long/article/de ...
- NSString去掉火车和空格
// backString = [backString stringByReplacingOccurrencesOfString:@"\r" withString:@&quo ...
- [Javascript] Advanced Reduce: Additional Reducer Arguments
Sometimes we need to turn arrays into new values in ways that can't be done purely by passing an acc ...
- Excel 国家甘特图(多图)
前言 者必画的图.我找了非常久也没找到一个专门画甘特图比較好的软件.经过研究最终用Excel画出了甘特图.网上这个资料但是没有的哟! 效果 watermark/2/text/aHR0cDovL2Jsb ...
- MFC 中的 “printf” 函数
怀念C语言的我,MFC没法使用的C语言printf函数,于是: int MFCprintf(const char* m_data, ...){ CString str; char printf_buf ...
- knockout --- foreach -- 前端必备
很久很久没写博客了,丫的,节操掉一地了,颓废了,惭愧. 很久很久没有弄 knouckout.js 了,今天重新操作,蛋疼啊,忘记得差不多了,于是只好硬着头皮再去看官网,于是,feel慢慢回来了. 本来 ...
- 图解JavaScript知识点
- 让页脚footer永远固定在页面的底部,而不是永远固定在显示器屏幕的底部的方法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...