Mysql存储过程

最近在搞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’)就可以了,是不是特别的方便。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值