用Mysql存储过程生成随机以80,90开头的电话号码,循环插入10万条数据
时间: 2024-02-03 11:15:46 浏览: 87
往mysql循环插入几千万条数据
3星 · 编辑精心推荐
以下是一个生成随机以80、90开头的电话号码并循环插入10万条数据的MySQL存储过程:
```
DELIMITER $$
CREATE PROCEDURE generate_phone_numbers()
BEGIN
DECLARE i INT DEFAULT 1;
WHILE i <= 100000 DO
DECLARE phone VARCHAR(11);
SET phone = CONCAT('1', LPAD(FLOOR(RAND() * 20) + 80, 2, '0'), LPAD(FLOOR(RAND() * 100000000), 8, '0'));
INSERT INTO phone_numbers (phone_number) VALUES (phone);
SET i = i + 1;
END WHILE;
END$$
DELIMITER ;
```
在这个存储过程中,我们首先定义了一个变量i来表示循环次数,然后使用while循环来循环10万次。在每次循环中,我们使用RAND()函数生成一个0到1之间的随机数,并将其乘以20,再加上80,得到以80或90开头的号码的第二位数。接着,我们再使用RAND()函数生成一个0到1亿之间的随机数,并使用LPAD函数将其填充为8位数字,作为号码的后8位数。最后,我们将这个号码插入到名为phone_numbers的表中。
使用以下命令调用存储过程:
```
CALL generate_phone_numbers();
```
执行完毕后,你应该可以在phone_numbers表中看到10万条随机以80、90开头的电话号码数据。
阅读全文