MySQL 动态sql语句执行 用时间做表名
来源:互联网 发布:软件宏编辑器 编辑:程序博客网 时间:2024/05/22 01:34
1. 描述
在使用数据的时候,我时候我们需要很多数据库,而且想用时间来做表名以区分。但是MySQL在存储过程中不支持使用变量名来做表名或者列名。
比如,有一个表我们想以“2015-07-16 12:00:00”命名。
2. 解决方案
如果只是更换一个普通的表名的话,很简单,直接使用下面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。
附一张结运行果图:
1 0
- MySQL 动态sql语句执行 用时间做表名
- 简单SQL语句执行用时
- mysql执行动态sql语句
- mysql存储过程执行动态sql语句
- 动态执行sql语句
- 动态执行SQL语句
- 动态执行SQL语句
- mysql 存储过程 根据参数 动态执行sql语句
- mysql存储过程执行动态sql语句并返回值
- MySQL 存储过程中执行动态 SQL 语句
- mysql 动态执行sql
- mysql动态执行sql
- mysql动态sql语句
- MYSQL 动态sql语句
- ORACLE 动态执行SQL语句
- ORACLE 动态执行SQL语句
- mybatis执行动态sql语句
- mysql(十)条件语句、循环语句、动态执行SQL语句
- hdu 3449(依赖背包) Consumer
- JS算法*START寻找最短路径
- 面向对象方法的理解
- 一个简单的java登录小界面
- 【Android】Caused by: libcore.io.ErrnoException: open failed: ENOENT (No such file or directory)
- MySQL 动态sql语句执行 用时间做表名
- oracle查询时通过分组去除重复行,其实这样写更简洁些
- 深入线程(二)
- 黑马程序员——IO流
- POJ - 1170 Shopping Offers (五维DP)
- centos 修改系统时区
- 我的Android进阶之旅------>android中getLocationInWindow 和 getLocationOnScreen的区别
- Android 通知栏Notification的整合 全面学习 (一个DEMO让你完全了解它)
- Android 获取系统开机时长 启动时长