用Mysql存储过程生成随机以70,80,90开头的电话号码,循环插入10万条数据,写法更加详细一点
时间: 2023-08-12 14:08:52 浏览: 109
可以使用以下存储过程来生成随机以70、80、90开头的电话号码并插入10万条数据:
```
DELIMITER //
CREATE PROCEDURE generate_phone_numbers()
BEGIN
DECLARE i INT DEFAULT 1;
DECLARE phone VARCHAR(20);
WHILE i <= 100000 DO
SET phone = CONCAT(
CASE FLOOR(RAND() * 3)
WHEN 0 THEN '70'
WHEN 1 THEN '80'
ELSE '90'
END,
FLOOR(RAND() * 89999999 + 10000000)
);
INSERT INTO phone_numbers (phone) VALUES (phone);
SET i = i + 1;
END WHILE;
END //
DELIMITER ;
```
这个存储过程首先会声明一个整型变量`i`,一个字符串变量`phone`。然后通过循环,生成以70、80、90开头的电话号码,并插入到`phone_numbers`表中。循环的次数为10万次,即生成10万条数据。
在这个存储过程中,我们使用了MySQL的内置函数`RAND()`来生成随机数,并使用`CASE`语句来确定电话号码的前缀。最终生成的电话号码由前缀和8位随机数字组成。注意,这个存储过程生成的电话号码没有去重,因此可能会存在重复数据。
你可以将这个存储过程保存到MySQL中,并在需要生成数据时调用它。例如,可以使用以下语句来调用这个存储过程:
```
CALL generate_phone_numbers();
```
这将会在MySQL中生成10万条随机电话号码,并插入到`phone_numbers`表中。
阅读全文