zoukankan      html  css  js  c++  java
  • Mysql动态sql语句,用当前时间做表名

      在mysql备份操作中, 我们可能要使用表名和当前时间来做为备份表的名称,但是MySQL在存储过程中不支持使用变量名来做表名或者列名。

      例如:有一个表”user“,我需要备份一份,并且表名为“user_2017_02_21“。

      在MySQL5.1以上的版本中,prepare语句可以支持这样的操作。
      我们可以用set @var=...设置变量,然后用prepare stml from @var设置动态sql语句,最后用EXECUTE stml;执行语句。

         下面是以时间为表名,动态备份一个表的sql执行过程:

      

    SET @sqlstr = CONCAT('create table user_',DATE_FORMAT(CURDATE(),'%Y_%m_%d'),' like user');
    PREPARE stmt1 FROM @sqlstr ;
    EXECUTE stmt1 ;
    SET @sqlstr = CONCAT('insert into user_',DATE_FORMAT(CURDATE(),'%Y_%m_%d'),' select * from user');
    PREPARE stmt1 FROM @sqlstr ;
    EXECUTE stmt1 ;
  • 相关阅读:
    最长严格上升子序列
    01背包
    八数码难题
    跳石头
    立体图
    质因数分解 2012年NOIP全国联赛普及组
    多项式输出 2009年NOIP全国联赛普及组
    绕钉子的长绳子
    数星星
    进制转换
  • 原文地址:https://www.cnblogs.com/pqchao/p/6472269.html
Copyright © 2011-2022 走看看