mysql 备份表的一个方法

#--- start

# 新建表
 create table sp2_match_comment_tmp like sp2_match_comment; # 这种方式 外键索引,触发器不会在新表中有,要自己添加

LOCK TABLES sp2_match_comment write, sp2_match_comment AS smc2 read, sp2_match_comment_tmp write;


# 导出最新数据到新表
insert into sp2_match_comment_tmp 
	select * from sp2_match_comment where id > 
		(select id from sp2_match_comment AS smc2 where addtime<start_date order by id desc limit 1);

# 原表改为备份表
alter table sp2_match_comment rename to @backup_table;

# 新表成为原表,
alter table sp2_match_comment_tmp rename to sp2_match_comment;


# 触发器 start ---
USE `spider_news`;
DELIMITER $$
DROP TRIGGER IF EXISTS spider_news.sp2_match_comment_AFTER_INSERT$$
USE `spider_news`$$
CREATE DEFINER=`shihe`@`%` TRIGGER `spider_news`.`sp2_match_comment_AFTER_INSERT` AFTER INSERT ON `sp2_match_comment` FOR EACH ROW
BEGIN
update sp2_match_news set cmt_num=cmt_num+1 where id=new.match_news_id;
update sh_article set cmt_num=cmt_num+1 where id in (
	select article_id from sp2_article_match_news where match_news_id=new.match_news_id
);
END$$
DELIMITER ;
# 触发器 end ---

UNLOCK TABLES;

delete from @backup_table where id >= (select id from sp2_match_comment order by id limit 1);


# ---end

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值