MYSQL 动态修改表面及动态变量查询 表

#修改表名
set @tableName = CONCAT('test_user'); 
SET @sqlstr = CONCAT('ALTER TABLE ',@tableName,' RENAME TO ',@tableName,'_',DATE_FORMAT(CURDATE(),'%Y_%m_%d'));
#预定义一个语句,并将它赋给 stmt
PREPARE stmt FROM @sqlstr ;
EXECUTE stmt ;


#方法一 查询修改的表数据 只查 10 条
#set @newtableName = CONCAT('test_user','_',DATE_FORMAT(CURDATE(),'%Y_%m_%d')); 
set @selectstr = CONCAT('select * from ',@tableName,'_',DATE_FORMAT(CURDATE(),'%Y_%m_%d'),' limit 10 ');
PREPARE stmt FROM @selectstr;
EXECUTE stmt;

#方法二 查询修改的表数据 ,' limit 10 '
set @newtableName = CONCAT('test_user','_',DATE_FORMAT(CURDATE(),'%Y_%m_%d'),' limit 10 '); 
set @selectstr = CONCAT('select * from ',@newtableName);
PREPARE stmt FROM @selectstr;
EXECUTE stmt;
#==================  修改后的表,名字重新改回去
SET @sqlstr = CONCAT('ALTER TABLE ',@tableName,'_',DATE_FORMAT(CURDATE(),'%Y_%m_%d'),' RENAME TO ',@tableName);
PREPARE stmt FROM @sqlstr ;
EXECUTE stmt ;

set @selectstr = CONCAT('select * from ',@tableName,' limit 10 ');
PREPARE stmt FROM @selectstr;
EXECUTE stmt;



#根据user 表 创建出一个按当日日期的备份表
SET @sqlstr = CONCAT('create table user_',DATE_FORMAT(CURDATE(),'%Y_%m_%d'),' like user');
PREPARE stmt FROM @sqlstr ;
EXECUTE stmt ;
#从源表 user 中查出数据,写入到按当日日期的备份表中
SET @sqlstr = CONCAT('insert into user_',DATE_FORMAT(CURDATE(),'%Y_%m_%d'),' select * from user ');
PREPARE stmt FROM @sqlstr ;
EXECUTE stmt ;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值