一 存储过程
老规矩,话不多说,上代码!
1.存储过程
drop PROCEDURE if EXISTS p_create_table;
CREATE PROCEDURE p_create_table (
IN pa_table_name VARCHAR (30) # 表名
)
BEGIN
DECLARE n int(10);
set @currMonth=MONTH(CURDATE());
set @a=@currMonth;
if @a=1 or @a=2 or @a=3 then set n=123;
elseif @a=4 or @a=5 or @a=6 then set n=456;
elseif @a=7 or @a=8 or @a=9 then set n=789;
else set n=101112;
end if;
set @tName=concat(pa_table_name,'_',n); # 利用concat拼接字符串函数,将复制表的sql赋值到变量sql_create_table
select @tName;
set @sql_create_table = concat('CREATE TABLE ',@tName," SELECT * FROM iip_acc_warn_information WHERE 1=1;");
# 预处理建表
PREPARE sql_create_table FROM @sql_create_table;
# 执行sql
EXECUTE sql_create_table;
END
2.调用
CALL p_create_table ("iip_acc_warn_information")
3.效果

查看数量

MySQL存储过程创建与调用
本文演示了如何在MySQL中创建和调用存储过程,该过程根据当前月份动态生成表名并复制数据。首先定义了一个名为p_create_table的存储过程,接受表名为参数,然后根据月份设置表名后缀,最后使用预处理语句创建新的表并复制数据。通过调用p_create_table存储过程,可以实现特定月份的数据表创建。
4847

被折叠的 条评论
为什么被折叠?



