DROP FUNCTION IF EXISTS `random_primary`$$
CREATE FUNCTION `rand_string`(n INT) RETURNS VARCHAR(255) CHARSET latin1
BEGIN
DECLARE chars_str VARCHAR(100) DEFAULT 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
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()*62 ),1));
SET i = i +1;
END WHILE;
RETURN return_str;
END$$
DELIMITER $$USE test $$DROP FUNCTION IF EXISTS `random_primary`$$CREATE FUNCTION `rand_string`(n INT) RETURNS VARCHAR(255) CHARSET latin1BEGIN DECLARE chars_str VARCHAR(100) DEFAULT 'ABCDEF
SQL
生成随机
数SQL生成唯一
主键
newid()设置表字段作为
主键
随机
排序表记录
随机
取得表中任意N条记录
SELECT * FROM Northwind..Orders ORDER BY NEWID()
--
随机
排序
SELECT TOP N * FROM Northwind..Orders ORDER BY NEWID(
生成不带-的
随机
主键
REPLACE (UUID(), '-', '')
生成指定范围的
随机
值数据 FLOOR(6000 + RAND() * 2000) 其中FLOOR()是舍去小数位取整
INSERT INTO bd_fz_average_land_price_trend (
AVERAGE_LAND_PRICE,
MONTH,
主键
使用32位
随机
字符串;手动插入数据时,单独使用UUID()
函数
时,因为 - 而长度不够,并且不够同一;为了观赏性,统一性;想到了使用REPLACE()
函数
进行替换,代码如下:
select REPLACE(UUID(), '-', '');
注:以上内容仅提供参考和交流,请勿用于商业用途,如有侵权联系本人删除!
在日常测试工作中,经常需要在短时间内构造大量的测试数据,如果只是几条数据,可以直接insert,但是如果要上万条呢,最近接到一个测试任务,就是模拟第三方,全量获取数据,因不方便跟第三方直接沟通,所以选择直接从本地数据库全量获取数量,大批量插入数据有以下两种方法,第一种就是通过excel造好直接导入数据库,以下我们要讲的是第二种方法,通过sql的方式直接插入,所以就有了下面的sqlbegin
d5d392d8-2bea-11e7-8e6a-28d244647ffc
//使用不方便,无法在数据库中复制粘贴
2. SELECT REPLACE(UUID(),'-','');
12d34dd62beb11e78e6a28d244647ffc
//把“-”替换成“”,编程32位,可以相互复制
3. java中代码
import java.
CREATE FUNCTION random_integer(min_val INT, max_val INT) RETURNS INT
BEGIN
RETURN FLOOR(RAND() * (max_val - min_val + 1) + min_val);
然后可以在创建表时使用该
函数
生成
主键
:
CREATE TABLE my_table (
id INT NOT NULL PRIMARY KEY DEFAULT random_integer(1, 100),
这样就可以
生成随机
的
主键
了。需要注意的是,由于
随机
数可能会重复,因此需要对
主键
字段添加唯一性约束。