Mysql存储过程

来源:互联网 发布:4k电视直播软件 编辑:程序博客网 时间:2024/05/17 05:01

最近在搞MYSQL。不停的在在复制表,后来嫌麻烦,写了一个存储过程。

大家可能都非常清楚如何去复制一张表:

create table new_table_name like old_table_name;insert into new_table_name (select * from old_table _name);

这两句sql虽然简单,但是在需要大量跟之前完全一样的表时,不断的去写这两句sql太麻烦了,于是我将它写成了存储过程, 代码如下:

DELIMITER $$CREATE    PROCEDURE `img`.`copy_table`(IN new_table_name varchar(30),IN old_table_name varchar(30))    /*主体部分*/    BEGIN    declare old_Tname varchar(30);    set old_Tname=old_table_name;    set @stmt=concat("create table ",new_table_name," like ",old_Tname);    set @stmt2=concat("insert into ",new_table_name," (select * from ",old_Tname,")");    /*执行sql*/    prepare stmt from @stmt;    execute stmt;    prepare stmt2 from @stmt2;    execute stmt2;    END$$DELIMITER ;

这样写的话,每次只需调用copy_table(‘new_table’,’old_table’)就可以了,是不是特别的方便。

这个存储过程很简单,当然大家如果感兴趣的话,可以往里面添加新功能。

原创粉丝点击