1. 描写叙述

  在使用数据的时候,我时候我们须要非常多数据库,并且想用时间来做表名以区分。可是MySQL在存储过程中不支持使用变量名来做表名或者列名。

  比方,有一个表我们想以“2015-07-16 12:00:00”命名。


2. 解决方式

  假设仅仅是更换一个普通的表名的话,非常easy。直接使用以下sql语句就可以:

  alter table old_table_name rename new_table_name

  可是要以时间为表名,动态命名的话就不能够了。首先我们能够用NOW()函数获取系统当前的时间。要寻求支持动态以变量的形式做数据库操作的方法,在MySQL5.1以上的版本号中。prepare语句能够支持这种操作。

  我们能够用set @var=...设置变量,然后用prepare stml from @var设置动态sql语句,最后用EXECUTE stml;运行语句。

  以下是以时间为表名。动态改动一个表的sql运行过程:

  

set @asql=concat('alter table old_table_name rename `',NOW(),'`');
prepare stml from @asql;
EXECUTE stml;

  这里使用到了MySQL中concat函数,此函数的作用是字符串拼接。相信懂得编程的同学对此都不陌生。

  用法:

  concat(str1,str2,…)

  返回结果为连接參数产生的字符串。注意如有不论什么一个參数为NULL ,则返回值为 NUL。

  附一张结运行果图:

  

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="re" title="">

MySQL 动态sql语句运行 用时间做表名的更多相关文章

  1. Mysql动态sql语句,用当前时间做表名

    在mysql备份操作中, 我们可能要使用表名和当前时间来做为备份表的名称,但是MySQL在存储过程中不支持使用变量名来做表名或者列名. 例如:有一个表"user",我需要备份一份, ...

  2. Mysql常用sql语句(二)- 操作数据表

    21篇测试必备的Mysql常用sql语句,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1683347.html ...

  3. Mysql常用sql语句(14)- 多表查询

    测试必备的Mysql常用sql语句,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1683347.html 前言 ...

  4. SQL SERVER中如何在声明游标的语句中,用变量做表名

    -- 因为定义游标所用的表名是变量,所以采用EXEC(定义语句) 的方式来声明游标set @StrSql='DECLARE Ba_Cursor CURSOR FOR (SELECT a.PhoneId ...

  5. PHP获取MySQL执行sql语句的查询时间

    //计时开始 runtime(); //执行查询 mysql_query($sql); //计时结束. echo runtime(1); //计时函数 function runtime($mode=0 ...

  6. (转载)PHP怎么获取MySQL执行sql语句的查询时间

    (转载自CSDN) 方法一: //计时开始 runtime(); //执行查询 mysql_query($sql); //计时结束. echo runtime(1); //计时函数 function ...

  7. mysql 动态sql语句

    ; SET @ss = ' INSERT INTO prod_attr SELECT ? AS prod_id,A.* FROM ( SELECT 1 AS attr_id,\'中国出版社\' AS ...

  8. MySQL通过SQL语句来直接生成新表

    1. 既复制表结构,也复制表数据 mysql> CREATE TABLE tmp_table SELECT * FROM dede_news; 说明:这种方法的缺点就是新表中没有了旧表的prim ...

  9. sql语句查询数据库中的表名/列名/主键/自动增长值

    原文地址:http://blog.csdn.net/pukuimin1226/article/details/7687538 ----查询数据库中用户创建的表 ----jsj01 为数据库名 sele ...

随机推荐

  1. C# 复制、粘贴文本信息到系统剪贴板

    复制: Clipboard.SetDataObject(textBox1.SelectedText); 粘贴: IDataObject iData = Clipboard.GetDataObject( ...

  2. ArrayList,Vector,LinkedList

    韩梦飞沙  韩亚飞  313134555@qq.com  yue31313  han_meng_fei_sha 数组列表 和 向量Vector, 都是使用数组方式存储. 向量 使用了 同步synchr ...

  3. 洛谷.3803.[模板]多项式乘法(NTT)

    题目链接:洛谷.LOJ. 为什么和那些差那么多啊.. 在这里记一下原根 Definition 阶 若\(a,p\)互质,且\(p>1\),我们称使\(a^n\equiv 1\ (mod\ p)\ ...

  4. window.open如何返回值给父窗口

    父窗口代码 function showMyWindowNew() { var iTop = (window.screen.availHeight - 30 - 450) / 2; //获得窗口的水平位 ...

  5. 记一次完整的pc前端整站开发

    我所做的项目是一个线上的旅游平台,当然不是大家耳熟能详的那些旅游平台了,项目刚开始也没有必要去评价它的好坏,在这里我就不多说了~这是线上地址有兴趣的同学可以去看看(www.bookingctrip.c ...

  6. ROS知识(14)----局部避障的动态窗口算法(DWA)及其调试的方法

    Dynamic Window Approach(DWA)是重要的局部轨迹规划算法,ROS中使用了DWA算法获得了很好的局部路径规划的效果.具体的教程可参考官方的导航调试资料Navigation Tun ...

  7. js面向对象编程-高级内容

    JavaScript面向对象 一.为每个对象动态添加属性或方法 功能:返回对象类型原型的引用 prototype的使用 格式:class.prototype 场景: 比如说:A写了一个类,交给B,B在 ...

  8. IE11 全新的F12开发者工具

      我讨厌debug,相信也没多少开发者会喜欢.但是当代码出错之后肯定是要找出问题出在哪里的.不过网页开发的时候遇到 BUG 是一件再正常不过的事情了,我们不能保证自己的代码万无一失,于是使用浏览器的 ...

  9. Install WordPress Plugins without FTP Access

    WordPress will only prompt you for your FTP connection information while trying to install plugins o ...

  10. dmesg命令的使用

    dmesg命令用于打印Linux系统开机启动信息,kernel会将开机信息存储在ring buffer中.您若是开机时来不及查看信息,可利用dmesg来查看(print or control the ...