MySQL循环插入100w条数据

注:未经过本文作者同意,严禁转载
创建一个数据库

CREATE DATABASE `数据库名称`

删库-删表sql语句-需要删除的时候使用该语句

-- 删除库
DROP DATABASE `数据库名称`

-- 删除表
DROP TABLE `表名称`

-- 删除函数
DROP FUNCTION 函数名称

-- 删除视图
DROP VIEW 视图名称

-- 删除存储过程
DROP PROCEDURE 存储过程名称

简单创建一张表

-- 创建数据库
CREATE DATABASE `demo`

-- 切换到指定的数据库
USE demo

-- 创建一张 users 表
CREATE TABLE `users`(
  -- 创建字段id 超大int类型(long)设置自增,不允许为空
  `id` BIGINT(64) UNSIGNED NOT NULL AUTO_INCREMENT,
  `name` VARCHAR(32) DEFAULT '' COMMENT '用户昵称',
  `pwd` VARCHAR(64) DEFAULT '' COMMENT '用户密码',
  PRIMARY KEY (`id`)
)ENGINE=INNODB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';

编写循环体

-- 标志,写函数前一定要写,很重要
DELIMITER $$

-- 创建一个function函数叫 mock_data()
CREATE FUNCTION mock_data()
RETURNS INT
BEGIN
  DECLARE num INT DEFAULT 1000000;
  DECLARE i INT DEFAULT 0;
  WHILE i<num DO
   -- 循环体
   INSERT INTO `users`(`name`,`pwd`)VALUES(CONCAT('用户',i),CONCAT(RAND()*(RAND(999999999-100000000)+1000000000)));
   -- i每次+1操作
   SET i = i+1;  
  END WHILE; 
  RETURN i;
  
-- 结束需要和标志定义的一样,这个很重要
END $$
SELECT mock_data();

细节注意:

如果使用的是 navicat 11版本的工具是没有 delimiter 关键字的,当然navicat其他版本我就不清楚了。需要用SQLyog工具,当前我用到SQLyog版本为8.32,SQLyog就可以。并且MySQL的版本是5.7.35,其他版本慎用

MySQL版本

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V5Sl47kq-1639705181505)(MySQL%E5%BE%AA%E7%8E%AF%E6%8F%92%E5%85%A5100w%E6%9D%A1%E6%95%B0%E6%8D%AE.assets/image-20211217093032251.png)]

SQLyog

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gt5z6iCT-1639705181507)(MySQL%E5%BE%AA%E7%8E%AF%E6%8F%92%E5%85%A5100w%E6%9D%A1%E6%95%B0%E6%8D%AE.assets/image-20211217092529741.png)]

Navicat

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IzzPgREN-1639705181507)(MySQL%E5%BE%AA%E7%8E%AF%E6%8F%92%E5%85%A5100w%E6%9D%A1%E6%95%B0%E6%8D%AE.assets/image-20211217092721458.png)]

问题注意:如果出现 FUNCTION mock_data already exists 错误

解决方法1:

-- 使用sql语句执行删除函数操作
DROP FUNCTION mock_data;

解决方法2:

使用 SQLyog 工具 Functions文件,选择你需要删除的函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kC6v6Hqq-1639705181509)(MySQL%E5%BE%AA%E7%8E%AF%E6%8F%92%E5%85%A5100w%E6%9D%A1%E6%95%B0%E6%8D%AE.assets/image-20211217093521360.png)]

使用 Navicat 工具 找到函数,选择你需要删除的函数即可

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2MOGx8YF-1639705181509)(MySQL%E5%BE%AA%E7%8E%AF%E6%8F%92%E5%85%A5100w%E6%9D%A1%E6%95%B0%E6%8D%AE.assets/image-20211217093916924.png)]

最后看一下结果

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Bl99ucX5-1639705181510)(MySQL%E5%BE%AA%E7%8E%AF%E6%8F%92%E5%85%A5100w%E6%9D%A1%E6%95%B0%E6%8D%AE.assets/image-20211217093326815.png)]
索引创建

-- id_表名_字段名
-- CREATE FULLTEXT INDEX 索引名 ON 表(字段) == 创建全文索引1
-- ALTER TABLE 表 ADD FULLTEXT INDEX 索引名(字段) == 创建全文索引2
-- CREATE INDEX 索引名 ON 表(字段) == 在某个字段上创建索引
CREATE INDEX users_name ON users(`name`)
CREATE FULLTEXT INDEX users_all ON users(`name`,`pwd`)
ALTER TABLE users ADD FULLTEXT INDEX fulltext_users(`name`,`pwd`)
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值