MySQL 动态sql语句运行 用时间做表名

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="">

时间: 2024-08-08 05:16:38

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

MySQL 动态sql语句执行 用时间做表名

1. 描述 在使用数据的时候,我时候我们需要很多数据库,而且想用时间来做表名以区分.但是MySQL在存储过程中不支持使用变量名来做表名或者列名. 比如,有一个表我们想以"2015-07-16 12:00:00"命名. 2. 解决方案 如果只是更换一个普通的表名的话,很简单,直接使用下面sql语句即可: alter table old_table_name rename new_table_name 但是要以时间为表名,动态命名的话就不可以了.首先我们可以用NOW()函数获取系统当前的时

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

21篇测试必备的Mysql常用sql语句,每天敲一篇,每次敲三遍,每月一循环,全都可记住!! https://www.cnblogs.com/poloyy/category/1683347.html 需要注意,创建数据库和创建表的语句博文都在前面哦 整个系列都是相互关联的哈,需要用到前面创建的数据库和表哦(系列博文第一篇和第二篇) 前言 针对数据表的操作语句叫做数据定义语言(DDL)   数据表有哪些操作? 创建数据表 查看表结构 查看数据表的创建语句 复制数据表 修改数据表 删除数据表 简称“

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

1. $t1=microtime(true); mysql_query($sql); echo microtime(true)-$t1; 2. //计时开始 runtime(); //执行查询 mysql_query($sql); //计时结束. echo runtime(1); //计时函数 function   runtime($mode=0)   { static   $t; if(!$mode)   { $t   =   microtime(); return; } $t1   =  

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

1. 既复制表结构,也复制表数据 mysql> CREATE TABLE tmp_table SELECT * FROM dede_news; 说明:这种方法的缺点就是新表中没有了旧表的primary key.Extra(auto_increment)等属性, 只能自己手动添加. 2.只复制表结构,而不复制表数据 mysql> CREATE TABLE tmp_table like dede_news;

Oracle:SQL语句--对表的操作——修改表名

1 – 修改表名(未验证在有数据,并且互有主外键时,是否可用) 2 3 语法: 4 rename 现表名 to 新表名; 5 6 例: 7 rename T_Student2 to T_Stu;

MyBatis学习(三)、动态SQL语句

三.动态SQL语句 有些时候,sql语句where条件中,需要一些安全判断,例如按某一条件查询时如果传入的参数是空,此时查询出的结果很可能是空的,也许我们需要参数为空时,是查出全部的信息.使用Oracle的序列.mysql的函数生成Id.这时我们可以使用动态sql. 下文均采用mysql语法和函数(例如字符串链接函数CONCAT). 3.1 selectKey 标签 在insert语句中,在Oracle经常使用序列.在MySQL中使用函数来自动生成插入表的主键,而且需要方法能返回这个生成主键.使

Effective MySQL之SQL语句最优化

推荐本SQL优化的书<Effective MySQL之SQL语句最优化>. 主要讲解:如何去分析SQL的性能.索引的原理.如何创建合适的索引.如何去分析线上系统的性能瓶颈. 另外还介绍了几个辅助工具: mysqldumpslow 来分析慢查询日志: Google开源的mysql-slow-query-log-parser 分析慢查询日志: 应用程序中使用MySQL Proxy来收集SQL语句.QEP.查询执行时间: 开源Maatkit检查数据库中的重复索引: Google的MySQL补丁,引入

MyBatis学习 之 四、动态SQL语句

有些时候,sql语句where条件中,需要一些安全判断,例如按某一条件查询时如果传入的参数是空,此时查询出的结果很可能是空的,也许我们需要参数为空时,是查出全部的信息.使用Oracle的序列.mysql的函数生成Id.这时我们可以使用动态sql. 下文均采用mysql语法和函数(例如字符串链接函数CONCAT). 3.1 selectKey 标签 在insert语句中,在Oracle经常使用序列.在MySQL中使用函数来自动生成插入表的主键,而且需要方法能返回这个生成主键.使用myBatis的s

MyBatis学习 之 三、动态SQL语句

有些时候,sql语句where条件中,需要一些安全判断,例如按某一条件查询时如果传入的参数是空,此时查询出的结果很可能是空的,也许我们需要参数为空时,是查出全部的信息.使用Oracle的序列.mysql的函数生成Id.这时我们可以使用动态sql. 下文均采用mysql语法和函数(例如字符串链接函数CONCAT). 3.1 selectKey 标签 在insert语句中,在Oracle经常使用序列.在MySQL中使用函数来自动生成插入表的主键,而且需要方法能返回这个生成主键.使用myBatis的s