当前位置:编程学习 > 网站相关 >>

批量生成随机手机号码的存储过程和自定义函数

DELIMITER $$ 
 
USE `gem`$$ 
 
DROP FUNCTION IF EXISTS `getRand`$$ 
 
CREATE   FUNCTION `getRand`(counts INTEGER) RETURNS VARCHAR(20) 
BEGIN 
       DECLARE sTemp VARCHAR(20); 
       DECLARE sTempCounts INTEGER; 
       SET sTemp = CONCAT( ROUND(ROUND(RAND(),counts)*(POW(10,counts))),''); 
        
       IF(CHAR_LENGTH(sTemp)<counts) THEN 
        
         SET sTempCounts = counts - CHAR_LENGTH(sTemp); 
         SET sTemp = CONCAT(sTemp, RIGHT(CONCAT(POW(10,sTempCounts),''),sTempCounts)); 
       END IF; 
        
      RETURN sTemp; 
END$$ 
 

DELIMITER ; 

以上是自定义函数的随机生产功能!多少位自己调用时指定即可,如下:

SELECT CONCAT(159,getRand(8));--此处自定义引用使用8位;同样也可以自定义其他位数,但是不能超过20位;


DELIMITER $$ 
CREATE PROCEDURE gems()
BEGIN
  DECLARE codes INT;
  SET codes=1;
  WHILE codes<1000 DO
     INSERT INTO tele SELECT CONCAT(159,getRand(8));
SET codes=codes+1;
END WHILE;
END;
以上自定义的为生产tele表内的手机位数!

 

CALL gems();调用即可生产!记住建表的时候,存储手机号自动的需为字符类型,不能为整型,否则会出现错误定义!


 

补充:综合编程 , 其他综合 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,