贝隆

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

循环创建表

drop procedure IF EXISTS create_table;

DELIMITER //
CREATE procedure create_table()
BEGIN


SET @i=0;
WHILE @i < 10 DO
SET @sqlstr = CONCAT(
"CREATE TABLE `test-user`.teacher_",
@i,
"(
`id` bigint(21) NOT NULL AUTO_INCREMENT,
`number` int(11) NOT NULL ,
`name` varchar(50) DEFAULT NULL,
`phone` bigint(17) DEFAULT NULL,
`address` varchar(255) DEFAULT NULL,
`card` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 AUTO_INCREMENT=1; ");

prepare stmt from @sqlstr;
execute stmt;

SET @i = @i + 1;
END WHILE;
END;
//
DELIMITER ;
call create_table();
drop procedure create_table;

 循环插入数据

 1 drop procedure IF EXISTS insert_user;
 2 
 3 DELIMITER //
 4 CREATE procedure insert_user()
 5 BEGIN
 6 
 7 SET @i=0;
 8 WHILE @i < 10 DO
 9     SET @sqlstr = CONCAT(
10     "insert into `test-user`.teacher_",
11     @i,
12     "(`id`, `number`, `name`, `phone`, `address`, `card`) VALUES (1, 345634223, '小郑', 15345544430, '徐州', '11010519491231002X'),
13     (2, 1345634223, '张伟', 15345544431, '徐州', '120102199801015234');");
14 
15     prepare stmt from @sqlstr;
16     execute stmt;
17 
18     SET @i = @i + 1;
19 END WHILE;
20 
21 END;
22 //
23 DELIMITER ;
24 call insert_user();
25 drop procedure insert_user;

 

posted on 2021-01-22 15:44  贝隆  阅读(64)  评论(0编辑  收藏  举报