mysql存储过程循环整个表_mysql存储过程,时间循环建表

delimiter //                            #定义标识符为双斜杠

drop procedure if exists test;          #如果存在test存储过程则删除

create procedure test()                 #创建无参存储过程,名称为test

begin

declare tbname varchar(20);

declare i int;                      #申明变量

set i = 1;                          #变量赋值

while i <= 100 do                   #结束循环的条件: 当i大于10时跳出while循环

set tbname = CONCAT('Sys_yhdtInfo_copy',i);

set @t_sql_1 = ' SET NAMES utf8mb4;';

PREPARE temp FROM @t_sql_1;

EXECUTE temp;

set @t_sql_2 = ' SET FOREIGN_KEY_CHECKS = 0;';

PREPARE temp FROM @t_sql_2;

EXECUTE temp;

set @t_sql_3 = CONCAT(' DROP TABLE IF EXISTS ',tbname);

PREPARE temp FROM @t_sql_3;

EXECUTE temp;

set @t_sql_4 = CONCAT(' CREATE TABLE ',tbname,' (

`id` int(11) NOT NULL AUTO_INCREMENT,

`dtsj` datetime(0) NULL DEFAULT NULL COMMENT ''答题时间'',

`tmid` int(255) NULL DEFAULT NULL COMMENT ''题目id'',

`hdda` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT ''回答答案'',

`zqda` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT ''正确答案'',

`openid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT ''用户id'',

PRIMARY KEY (`id`) USING BTREE

) ENGINE = InnoDB AUTO_INCREMENT = 7 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;');

PREPARE temp FROM @t_sql_4;

EXECUTE temp;

set @t_sql_5 = 'SET FOREIGN_KEY_CHECKS = 1;';

PREPARE temp FROM @t_sql_5;

EXECUTE temp;

deallocate prepare temp;      -- 释放prepare

set i = i + 1;                  #循环一次,i加一

end while;                          #结束while循环

end

//                                      #结束定义语句

call test();                            #调用存储过程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值