MySQL通过存储过程循环插入数据

创建一个student表

CREATE TABLE `student` (
  `ID` int(11) NOT NULL AUTO_INCREMENT,
  `NAME` varchar(30) NOT NULL,
  `SEX` char(2) NOT NULL,
  `AGE` int(11) NOT NULL,
  `CLASS` varchar(10) NOT NULL,
  `GRADE` varchar(20) NOT NULL,
  `HOBBY` varchar(100) DEFAULT NULL,
  PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

存储过程插入数据

DROP PROCEDURE IF EXISTS inst_data;
CREATE PROCEDURE inst_data() BEGIN
	DECLARE incr INT DEFAULT 1;
	WHILE incr <= 10 DO
	  INSERT INTO `student` (`NAME`, `SEX`, `AGE`, `CLASS`, `GRADE`, `HOBBY` )
		VALUES
			(
				CONCAT( 'jsontom', incr),
			    CASE WHEN incr % 2 = 0 THEN '男' ELSE '女' END,
				FLOOR(18 + ( RAND() * 7 )),
				CONCAT(1 + FLOOR(RAND() * 10 ), '班' ),
				CONCAT(1 + FLOOR(RAND() * 10 ), '年级' ),
				CONCAT( '喜爱看第',1 + FLOOR(RAND() * 9 ),'个片儿')
			);		
	  SET incr = incr + 1;
	END WHILE;
	SELECT CONCAT('条数 ',incr);
END;
CALL inst_data ( );

猜你喜欢

转载自blog.csdn.net/weixin_43073775/article/details/121294918