1.首先需要一个基础表。(并加入10条数据)
CREATE TABLE sample(
id INT(11) NOT NULL AUTO_INCREMENT,
value INT(5) NOT NULL DEFAULT 0,
PRIMARY KEY (id)
);
INSERT INTO sample(value)
VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
该样本表主要是负责给我们需要添加测试数据表内容填充使用的(主要是应用到表中的条数),实际表中储存什么数据是不影响我们要填充的假数据的表。
2.建立一个需要使用的假数据表
CREATE TABLE account(
id INT(11) NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id)
);
3.在查询中输入
INSERT INTO account( NAME ) SELECT
concat( 'name', @nownum := @nownum + 1 )
FROM
sample AS a,
sample AS b,
sample AS c,
sample AS d,
( SELECT @nownum := 0 ) AS e
这样就加入了10000条数据,@nownum表示的是一个变量 @newnum:=0表示变量@newnum的起始值是0,也就是第一行测试数据的name属性是name1。
concat(str1,str2)是mysql的函数目的是将str1和str2拼接成一个字符串。
FROM
sample AS a,
sample AS b,
sample AS c,
sample AS d,
而数据的数目和sample的数目有关数据的条数就是sample的数量的次方 而本例子中是四个sample,而每个sample表中有10条数据,所以该语句制造了10的四次方条测试数据。
对该语句进行分析第一行 insert into account (name) :表示对account 表的name属性进行差值,因为再设计account表时只设计了两个属性id 和name 而且id是主键并且是自动递增的,所以在直接插入name属性的数据是显示的效果是
直截取了前十条。