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

六点的太阳 2016-08-01 09:04:25
每月1号自动创建1个数据库,数据库以年月命名,如“20160801”。
应该在函数里面写?还是在时间里面写?
有没有大神指导一下。
...全文
265 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
九月茅桃 2016-08-01
  • 打赏
  • 举报
回复
写一个存储过程,然后做个定时任务,就搞定了。
六点的太阳 2016-08-01
  • 打赏
  • 举报
回复
引用 6 楼 wangjian0228 的回复:
[quote=引用 5 楼 bin8632 的回复:]

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;
我是这么写的,保存的时候报错
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上面是个字符串,要用引号[/quote] 多谢大神!!!!!!!!!
致命的西瓜 2016-08-01
  • 打赏
  • 举报
回复
引用 5 楼 bin8632 的回复:

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;
我是这么写的,保存的时候报错
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上面是个字符串,要用引号
六点的太阳 2016-08-01
  • 打赏
  • 举报
回复

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;


我是这么写的,保存的时候报错
致命的西瓜 2016-08-01
  • 打赏
  • 举报
回复
引用 3 楼 bin8632 的回复:
[quote=引用 1 楼 wangjian0228 的回复:] set @str= CONCAT('create database yourname',DATE_FORMAT(CURRENT_DATE(),'%Y%m')); SET @sqlstr=@str; PREPARE stmt from @sqlstr; EXECUTE stmt; deallocate prepare stmt; 在过程里写,自己增加定时任务命令
不好意思,说错了,是在指定的数据库中创建一个表,表的名字是年月。能再给解答下吗? 你的回答对我很有帮助,谢谢![/quote] database 改成table 就是拼接sql执行的过程
六点的太阳 2016-08-01
  • 打赏
  • 举报
回复
引用 1 楼 wangjian0228 的回复:
set @str= CONCAT('create database yourname',DATE_FORMAT(CURRENT_DATE(),'%Y%m')); SET @sqlstr=@str; PREPARE stmt from @sqlstr; EXECUTE stmt; deallocate prepare stmt; 在过程里写,自己增加定时任务命令
不好意思,说错了,是在指定的数据库中创建一个表,表的名字是年月。能再给解答下吗? 你的回答对我很有帮助,谢谢!
zjcxc 2016-08-01
  • 打赏
  • 举报
回复
弄个计划任务(操作系统的),或者是 mysql 启动 Event schedule,建个 event 做
致命的西瓜 2016-08-01
  • 打赏
  • 举报
回复
set @str= CONCAT('create database yourname',DATE_FORMAT(CURRENT_DATE(),'%Y%m')); SET @sqlstr=@str; PREPARE stmt from @sqlstr; EXECUTE stmt; deallocate prepare stmt; 在过程里写,自己增加定时任务命令

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧