mysql 定时创建数据库,每个月1号自动创建1个数据库

MySql 码拜 9年前 (2016-05-18) 1821次浏览
每月1号自动创建1个数据库,数据库以年月命名,如“20160801”。
应该在函数里面写?还是在时间里面写?
有没有高手指导一下。
解决方案

10

set @str= CONCAT(“create database yourname”,DATE_FORMAT(CURRENT_DATE(),”%Y%m”));
SET @sqlstr=@str;
PREPARE stmt from @sqlstr;
EXECUTE stmt;
deallocate prepare stmt;
在过程里写,本人增加定时任务命令

10

引用:
Quote: 引用:

set @str= CONCAT(“create database yourname”,DATE_FORMAT(CURRENT_DATE(),”%Y%m”));
SET @sqlstr=@str;
PREPARE stmt from @sqlstr;
EXECUTE stmt;
deallocate prepare stmt;
在过程里写,本人增加定时任务命令

不好意思,说错了,是在指定的数据库中创建一个表,表的名字是年月。能再给解答下吗?
你的回答对本人很有帮助,谢谢!

database 改成table  就是拼接sql执行的过程

20

引用:
set @str= CONCAT("CREATE TABLE dd",DATE_FORMAT(CURRENT_DATE(),"%Y%m")(
`id` int(20) NOT NULL DEFAULT "0",`nickname` varchar(50) DEFAULT NULL));
SET @sqlstr=@str;
PREPARE stmt from @sqlstr;
EXECUTE stmt;
deallocate prepare stmt;

本人是这么写的,保存的时候报错
mysql 定时创建数据库,每个月1号自动创建1个数据库

set @str= CONCAT(“CREATE TABLE dd”,DATE_FORMAT(CURRENT_DATE(),”%Y%m”),”(`id` int(20) NOT NULL DEFAULT 0,`nickname` varchar(50) DEFAULT NULL)”);
SET @sqlstr=@str;
PREPARE stmt from @sqlstr;
EXECUTE stmt;
deallocate prepare stmt;
拼接sql上面是个字符串,要用引号


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明mysql 定时创建数据库,每个月1号自动创建1个数据库
喜欢 (0)
[1034331897@qq.com]
分享 (0)